在linux下一些常用的關機、重啟命令有shutdown、halt、reboot、及init,它們都可以達到重啟系統的目的,但每個命令的內部工作過程是不同的,通過本文的介紹,希望你可以更加靈活的運用各種關機命令。
1、shutdown
shutdown命令安全地將系統關機,在系統關機前使用shutdown命令﹐系統管理員會通知所有登入的使用者系統將要關閉。並且login指令會被凍結﹐即新的使用者不能再登入。直接關機或者延遲一定的時間才關機都是可能的﹐還可能重啟。這是由所有進程〔process〕都會收到系統所送達的訊號〔signal〕決定的。這讓像vi之類的程式有時間儲存目前正在編輯的文檔﹐而像處理郵件〔mail〕和新聞〔news〕的程式則可以正常地離開等等。
shutdown執行它的工作是送訊號〔signal〕給init程式﹐要求它改變runlevel。Runlevel 0被用來停機〔halt〕﹐runlevel 6是用來重新啟用〔reboot〕系統。
shutdown常用的命令集:
# shutdown -h now
以上命令等於 halt。
# shutdown +5 "System will shutdown after 5 minutes"
指定5分鐘後關機,同時送出警告資訊給登入使用者
# shutdown -r
系統重啟
2、halt -- 最簡單的關機命令
其實halt就是調用shutdown -h。halt執行時﹐殺死應用進程﹐執行sync系統調用﹐檔案系統寫操作完成後就會停止核心。
# halt
3、reboot
reboot的工作過程差不多跟halt一樣﹐不過它是引發主機重啟﹐而halt是關機。
# reboot
4、init
init是所有進程的祖先﹐它的進程號始終為1﹐所以發送TERM訊號給init會終止所有的使用者進程﹑守護進程等。shutdown 就是使用這種機制。init定義了8個運行層級(runlevel), init 0為關機﹐init 1為重啟。
# init 0
關機。
# init 1
重啟。