reboot, init 6 및 shutdown -r now의 차이점은 무엇입니까?


100

나는 단지의 차이점을 알고 싶다.

  • reboot
  • init 6
  • shutdown -r now

그리고 가장 안전하고 가장 좋은 것은 무엇입니까?


1
이 세 명령의 정확한 동작은 운영 체제마다 다릅니다.
Thorbjørn Ravn Andersen

답변:


83

그들에는 차이가 없습니다. 내부적으로 그들은 똑같은 일을합니다.

  • rebootshutdown-r 스위치와 함께 명령을 사용합니다 . shutdown 명령은 실행중인 모든 프로세스를 종료하고 모든 파일 시스템을 마운트 해제하고 마지막으로 커널에게 ACPI power 명령을 실행하도록 지시합니다. 소스는 여기에서 찾을 수 있습니다 . 오래된 배포판에서 reboot 명령은 SIGKILL신호 를 발행하여 프로세스를 강제 종료했습니다 (여전히 소스에서 발견되고 -f옵션을 사용하여 호출 할 수 있음 ). 가장 최근의 배포판에서는 기본값 이보다 우아하고 초기화하기 쉽습니다 init 1 -> shutdown -r. 이렇게하면 데몬이 종료되기 전에 스스로 정리됩니다.

  • init 6initinit 파일에 기록 된대로 생성 된 모든 프로세스 / 데몬을 종료 하도록 프로세스에 지시하고 (마지막으로 시작한 순서로) 마지막으로 shutdown -r now명령을 호출 하여 시스템을 재부팅합니다.

오늘날 두 명령이 정확히 동일하기 때문에 큰 차이가 없으며, 종료 스크립트를 호출하여 서비스 / 데몬을 시작하는 데 사용되는 초기화 스크립트를 존중합니다. reboot -f -r now아래에 명시된 것을 제외하고

reboot -f안전하지 않은지에 대한 맨 페이지에서 작은 설명 이 있습니다.

  -f, --force
    즉시 중지, 전원 끄기, 재부팅. 초기화 시스템에 연락하지 마십시오.

편집하다:

다음 RHEL 배포판에서는 새 systemctl명령을 사용하여 전원 끄기 / 재부팅을 실행 해야합니다 . 의 맨 페이지에 명시된 바와 같이 reboot하고 shutdown그들이있다 "호환성을 위해서만 사용할 수있는 기존의 명령을 실행합니다." 그 systemctl방법은 유일한 안전합니다.


때때로 내 재부팅이 SIGTERM에서 멈추고, 이유를 알 수있는 방법이 있으며, 너무 오래 걸리면 재부팅을 강제로 수행하도록 재부팅 시간을 초과하는 방법이 있습니까?
CMCDragonkai

2
이러한 RHEL 버전은 더 이상 "다가오는"버전이 아닙니다. ☺ unix.stackexchange.com/a/196014/5132 에서 자세히 설명했듯이 이러한 시스템 운영 체제에서는 전혀 차이가 없습니다. 그들은 심지어 다른 프로그램이 아닙니다.
JdeBP

당신은 오타로 말했습니까 init 1 -> shutdown -r?
deed02392

연결이 끊어졌습니다.
whoKnows

8

종료는 과감한 행동 의 이유 를 지정할 수 있기 때문에 바람직 합니다. 항상해야 할 일입니다. 메시지는 후손을 위해 로그에 기록됩니다. 예를 들면 다음과 같습니다.

shutdown -r now 'Kernel upgrade requires reboot'

재부팅 시간 이외의 다른 것을 지정 하여 예약 된 재부팅을 수행 할 수도 있습니다 now.

shutdown -r 22:00 'Work around kernel memory leak'

그러면 사용자는 시간이 다가 오면서 정기적으로 알림을 받게됩니다. 프로세스는보다 질서적이고 전문적입니다.


5

전통적인 유니스 rebootshutdown -r now는 매우 다른 명령입니다. 일반적인 사용법에서는 reboot단일 사용자 모드에서만 사용하는 것이 안전합니다.

shutdown -r now는 다른 * nix에서 일반적으로 사용하기에 안전하고 종료되는 정식 방법이며 기능적으로와 동일합니다 init 6.

초기화 (8) 재부팅 (8)


4

FreeBSD의에 차이가있다 rebootshutdown -r now. 로부터 reboot매뉴얼 페이지

일반적으로 shutdown (8) 유틸리티는 시스템을 중지하거나 다시 시작해야 할 때 사용되어 사용자에게 임박한 운명에 대해 미리 경고하고 특정 프로그램을 완전히 종료합니다.


1
그러나 이것은 질문 중 하나의 태그와 명령 중 하나에서 System 5 실행 레벨의 사용에 의해 입증되는 것처럼 BSD 질문이 아닙니다. ☺
JdeBP

1
나는 그것이 리눅스 질문이라는 것을 안다. 누군가 다른 시스템에서는 차이가 있다는 것을 아는 것이 유용하다고 생각했습니다.
Marián Černý
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.