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

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

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

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


4

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

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


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

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