REBOOT(2)

명칭
reboot - 시스템을 리부트하든가 또는 프로세서를 정지한다

프로그램 라이브러리
libc

서식
<unistd.h> <sys/reboot.h> int reboot(int howto)

해설
reboot() (은)는 시스템을 리부트합니다. 슈퍼 유저만이 필요에 따라서 머신을 리부트할 수 있습니다. 그러나, 회복 불가능한 시스템 장해의 경우는, 리부트는 자동적으로 기동됩니다.

howto (은)는 옵션의 마스크입니다. 시스템 콜 인터페이스는 인클루드 파일 <sys/reboot.h> 안에 정의된 다음의 옵션을 접수해 새로운 커널 또는 새로운 bootstrap와 init 프로그램에게 건네지도록(듯이) 합니다.

RB_AUTOBOOT
    디폴트. 시스템이 통상의 방법으로 리부트하도록(듯이) 합니다.

RB_ASKNAME
    bootstrap 프로그램 자체에 의해 해석되어 어느 파일을 부트해야할 것인가에 대해서, 콘솔에 prompt를 표시하도록(듯이) 합니다. 통상, 시스템은 파일 “xx(0,0) kernel” (으)로부터 부트 됩니다. 여기서, xx (은)는 파일명을 입력하도록(듯이) prompt를 내지 않는 경우의, 디폴트의 디스크명입니다.

RB_DFLTROOT
    컴파일시로 지정된 루트 디바이스를 사용합니다. 통상, 시스템은, 가능하면 부트 된 디바이스를 루트 디바이스로서 사용합니다 (디폴트의 동작은, 시스템이 어느 드라이브로부터 로드 되었는지를 판별한다 bootstrap 프로그램의 능력에 의존합니다. 이것은 모든 시스템으로 가능한 것이 아닙니다).

RB_DUMP
    리부트 전에 카네르메모리를 덤프 합니다. 상세한 것에 대하여는, savecore(8) (을)를 참조해 주세요.

RB_HALT
    프로세서는 단지 정지됩니다. 리부트는 일어나지 않습니다. 이 옵션은 주의해 사용할 필요가 있습니다.

RB_POWEROFF
    시스템 정지의 뒤, 셧다운 코드는, 가능하면 전원을 끕니다. 이것에는 하드웨어의 서포트가 필요합니다.

RB_INITNAME
    시스템이 리부트했을 때에, /sbin/init 이외의 init 프로그램 (init(8) (을)를 참조)가 실행되도록(듯이) 지정하는 옵션입니다. 이 스윗치는 현시점에서는 무효입니다.

RB_KDB
    심볼 테이블을 로드해, 시스템내의 편입 디버거를 유효하게 합니다. 커널이 디버그용으로 구성되어 있지 않은 경우, 이 옵션은 의미를 가져 선. 이외의 몇개의 옵션은, 이 옵션과 조합하면(자) 통상과 다른 의미를 가지게 됩니다만, 그러한 기능을 사용하는 것은 reboot() 시스템 콜에서는 불가능한 경우가 있습니다. 상세한 것에 대하여는, ddb(4) (을)를 참조해 주세요.

RB_NOSYNC
    통상, 프로세서가 정지되든가 또는 리부트되기 전에, 디스크에 아직 쓰기라고 없는 데이터가 있으면 그것을 기입합니다 (sync(8) (을)를 참조). 이 옵션은, 파일 시스템에의 변경이 수작업으로 행해졌을 경우나, 프로세서가 크래쉬 하고 있는 경우, 유용한 일이 있습니다.

RB_RDONLY
    초기 단계에서, 루트 파일 시스템을 읽기 전용으로 mount 합니다. 현재는 이것이 디폴트이며, 이 옵션은 무의미한 것이 되어 있습니다.

RB_SINGLE
    통상의 리부트 처리에서는 우선 자동적으로 디스크의 일관성 체크가 행해져 그 다음에 multiuser 환경에 이행 하게 되어 있습니다. RB_SINGLE (은)는, 이것을 행하지 않고, 시스템을 콘솔상의 싱글 유저 쉘로 부트 합니다. RB_SINGLE (은)는, 실제로는 부트 다시 한 시스템으로 init(8) 프로그램에 의해 해석됩니다.

옵션을 지정하지 않는 경우 (즉, RB_AUTOBOOT 하지만 사용되는 경우), 시스템은, 프로세서가 소정의 방법으로 선택했다 유니트 0 의 디스크의 루트 파일 시스템에 있다 “kernel” 그렇다고 하는 파일로부터 리부트됩니다. 이 때, 통상은 디스크의 일관성 체크가 자동적으로 실행됩니다 (fsck(8) (을)를 참조).

반환값
정상적으로 처리가 종료했을 경우, 이 호출은 돌아올 것은 없습니다. 그렇지 않은 경우는 -1 이 돌려주어져 에러가 글로벌 변수 errno 안에 돌려주어집니다.

에러

[EPERM]
    호출측이 슈퍼 유저가 아닙니다.

관련 항목
crash(8), halt(8), init(8), reboot(8), savecore(8)

버그
HP300 시스템은, RB_DFLTROOT (와)과 RB_KDB 의 어느쪽이나 서포트하고 있지 않습니다.

역사
reboot() 함수는 4.0BSD 그리고 등장했습니다.