[unix] 다른 바이너리에서 재부팅 기능이 필요한 이유는 무엇입니까?

다른 바이너리에서 재부팅 기능이 필요한 이유는 무엇입니까?

shutdown -r

reboot

아니면 다른 점이 있습니까?



답변

둘 다 필요하지는 않지만 Unix의 역사와 여러 버전으로 인해 둘 다 있습니다.

해당 매뉴얼 페이지에서 :

  • 종료 유틸리티는 4.0BSD에 나타났습니다.
  • 재부팅 유틸리티가 버전 6 AT & T UNIX에 나타났습니다.

시스템 종료는보다 범용적이고 강력하지만 재부팅은 더 친숙하고 기억하기 쉽습니다.

shutdown을 사용하면 임시 인수 (예 : 5 분 후에 다시 시작)를 지정하고 재부팅 외에 다음을 포함하여 많은 작업을 수행 할 수 있습니다.

  • 당신은 사용자를 시작하고 실제로 종료 할 수 없습니다
  • 시스템을 종료하지 않고 절전 모드로 전환 할 수 있습니다
  • halt 명령과 같이 재부팅하지 않고 간단히 종료 할 수 있습니다
  • 시스템 사용자에게 사용자 정의 경고 메시지를 포함시킬 수 있습니다

그러나 지금 시스템을 재부트하려면을 입력하는 reboot것이 더 쉽습니다 shutdown -r now.


답변

두 명령은 서로 다른 작업을 수행하지만 서로 호출 할 수 있으므로 동일한 작업을 수행하는 것 같습니다 !

reboot실제로 하드웨어 재부팅을 트리거하기 위해 커널을 호출합니다. 그러나 시스템이 종료 준비가 된 경우에만이 작업을 수행합니다-모든 데몬 및 사용자 프로세스를 중지하고 파일 시스템을 마운트 해제해야합니다. 따라서 시스템 실행 수준을 확인하고 0 또는 6이 아닌 경우 실제로 호출합니다. shutdown당신을위한 명령.

shutdown시스템 런레벨이 변경됩니다. (재부팅 정지 또는 6 0) 런레벨 변경 /etc/rc0.d에서 스크립트를 많이 또는 rc6.d을 실행합니다 마지막으로 등 종료 내려 데몬, 파일 시스템을 마운트 해제, 이러한 호출 스크립트 halt또는 reboot– 시스템에이 시간 올바른 실행 수준으로 커널에 재부팅 (또는 중지)을 지시합니다.


답변

: 우상 파괴자가 쓴뿐만 아니라, 두 프로그램 사이에 중요한 차이점 거기 shutdown에있는 /sbin동안 reboot이다 /usr/bin.

왜 이것이 문제가됩니까? 난 당신을 말할 것이다.

아래의 상황이 /usr시스템이 충분히 시스템이 최소한의 작동하는지 부팅 될 때까지 사용할 수없는 것들이다. 전통적으로 별도의 파일 시스템에 설치되지 않습니다 최상위 디렉토리는 – /bin, /etc, /sbin, 등 – 시스템이 최소한의 유용한 상태에 도달하는 동안 출시 될 예정이다. 이 디자인에는 다양한 의미가 있습니다. 예를 들어 또는에 /usr/bin대안이있는 경우 프로그램을 사용하는 SysV init 스크립트의 “stop”절을 작성하는 것은 좋지 않습니다 ./bin/sbin

shutdown항상 사용할 수있는 핵심 유틸리티입니다. reboot편리한 유틸리티입니다.


답변