“shutdown -h now”는 “kill -15″와 반대로 모든 프로세스에 대해 “kill -9″와 유사한 기능을 수행하기 때문에 우아한 종료 명령이 아니라고 들었습니다.
이것이 사실입니까, 그렇다면 그렇다면 모든 것이 자체적으로 정리 될 시간을 갖도록하기 위해 좀 더 우아하게 종료하는 방법은 무엇입니까?
Ps CentOS, Ubuntu 및 Debian을 주로 사용합니다.
답변
shutdown -h now
호출 /etc/rc.d/rc
또는 /etc/init.d/rc
. 이 rc
스크립트는 새로운 런레벨 (0 : -h
, 6 :)에 대한 kill 스크립트를 호출 한 다음 시작 스크립트를 호출합니다 -r
.
당신은 볼 S30killprocs
이나 S00killall
또는 같은 배포판에 따라. 이것은 모든 킬 스크립트가 호출되어 각 서비스를 정상적으로 중지하려고 시도한 후에 발생합니다. kill -15
먼저 시도한 다음을 시도 합니다 kill -9
.
짧은 대답 : shutdown -h now
또는 shutdown -r now
우아합니다. halt
및 reboot
비 우아한로 사용하지만, 그들은 단지 호출 shutdown
당신이 사용하지 않는 당신을 위해 -f
옵션을 선택합니다.
답변
아니요, 사실이 아닙니다. shutdown
init 레벨을 변경하여 모든 종료 스크립트를 실행합니다. 이 스크립트의 기능은 스크립트에 따라 다릅니다. 그러나 그들은 일반적으로 프로세스를 종료하지 않고 신호를 끝까지 보냅니다.
그래서 이것은 다음에 대한 수동 발췌입니다 shutdown
.
shutdown brings the system down in a secure way. All logged-in users
are notified that the system is going down, and login(1) is blocked.
It is possible to shut the system down immediately or after a specified
delay. All processes are first notified that the system is going down
by the signal SIGTERM. This gives programs like vi(1) the time to save
the file being edited, mail and news processing programs a chance to
exit cleanly, etc. shutdown does its job by signalling the init
process, asking it to change the runlevel. Runlevel 0 is used to halt
the system, runlevel 6 is used to reboot the system, and runlevel 1 is
used to put to system into a state where administrative tasks can be
performed; this is the default if neither the -h or -r flag is given to
shutdown. To see which actions are taken on halt or reboot see the
appropriate entries for these runlevels in the file /etc/inittab.