답변:
그들에는 차이가 없습니다. 내부적으로 그들은 똑같은 일을합니다.
reboot
shutdown
-r 스위치와 함께 명령을 사용합니다 . shutdown 명령은 실행중인 모든 프로세스를 종료하고 모든 파일 시스템을 마운트 해제하고 마지막으로 커널에게 ACPI power 명령을 실행하도록 지시합니다. 소스는 여기에서 찾을 수 있습니다 . 오래된 배포판에서 reboot 명령은 SIGKILL
신호 를 발행하여 프로세스를 강제 종료했습니다 (여전히 소스에서 발견되고 -f
옵션을 사용하여 호출 할 수 있음 ). 가장 최근의 배포판에서는 기본값 이보다 우아하고 초기화하기 쉽습니다 init 1 -> shutdown -r
. 이렇게하면 데몬이 종료되기 전에 스스로 정리됩니다.
init 6
init
init 파일에 기록 된대로 생성 된 모든 프로세스 / 데몬을 종료 하도록 프로세스에 지시하고 (마지막으로 시작한 순서로) 마지막으로 shutdown -r now
명령을 호출 하여 시스템을 재부팅합니다.
오늘날 두 명령이 정확히 동일하기 때문에 큰 차이가 없으며, 종료 스크립트를 호출하여 서비스 / 데몬을 시작하는 데 사용되는 초기화 스크립트를 존중합니다. reboot -f -r now
아래에 명시된 것을 제외하고
왜 reboot -f
안전하지 않은지에 대한 맨 페이지에서 작은 설명 이 있습니다.
-f, --force 즉시 중지, 전원 끄기, 재부팅. 초기화 시스템에 연락하지 마십시오.
편집하다:
다음 RHEL 배포판에서는 새 systemctl
명령을 사용하여 전원 끄기 / 재부팅을 실행 해야합니다 . 의 맨 페이지에 명시된 바와 같이 reboot
하고 shutdown
그들이있다 "호환성을 위해서만 사용할 수있는 기존의 명령을 실행합니다." 그 systemctl
방법은 유일한 안전합니다.
init 1 -> shutdown -r
?
종료는 과감한 행동 의 이유 를 지정할 수 있기 때문에 바람직 합니다. 항상해야 할 일입니다. 메시지는 후손을 위해 로그에 기록됩니다. 예를 들면 다음과 같습니다.
shutdown -r now 'Kernel upgrade requires reboot'
재부팅 시간 이외의 다른 것을 지정 하여 예약 된 재부팅을 수행 할 수도 있습니다 now
.
shutdown -r 22:00 'Work around kernel memory leak'
그러면 사용자는 시간이 다가 오면서 정기적으로 알림을 받게됩니다. 프로세스는보다 질서적이고 전문적입니다.
전통적인 유니스 reboot
와 shutdown -r now
는 매우 다른 명령입니다. 일반적인 사용법에서는 reboot
단일 사용자 모드에서만 사용하는 것이 안전합니다.
shutdown -r now
는 다른 * nix에서 일반적으로 사용하기에 안전하고 종료되는 정식 방법이며 기능적으로와 동일합니다 init 6
.
FreeBSD의에 차이가있다 reboot
및 shutdown -r now
. 로부터 reboot
매뉴얼 페이지
일반적으로 shutdown (8) 유틸리티는 시스템을 중지하거나 다시 시작해야 할 때 사용되어 사용자에게 임박한 운명에 대해 미리 경고하고 특정 프로그램을 완전히 종료합니다.