Linux命令(十七) 關機命令


在 Linux 系統下一些常用的關機/重啟命令有 shutdown、halt、reboot以及init,他們都可以達到重啟系統的目的,但每個命令的內部工作過程不同。

一、使用 shutdown 關機或重啟

1. shutdown 命令介紹

shutdown 命令安全地將系統關機,在系統關機前使用 shutdown 命令,系統管理員會通知所有登錄的用戶系統將要關閉,並且 login 指令會被凍結,即新的用戶不能再登錄。直接關機或是延時一段時間關機都是可以的,也可以進行重啟。

shutdown 執行的工作是送信號給 init 程序,要求它改變 runlevel。 runlevel 0 被用來停機, runlevel 6 用來程序激活系統。 而 runlevel 1 則是被用來讓系統進入管理工作可以進行的狀態。 如果想要了解在停機或重新開機過程中做了哪些動作,可以在 /etc/inittab 里看到關於這些 runlevel 的 信息。

2. shutdown 參數說明

-t 在改變到其它 runlevel 之前,告訴 init 多久以后關機

-r 重啟計算機

-k 並不是真正關機,只是送警告信號給每位登陸者

-h 關機后關閉電源

-n 不用 init,而是自己來關機

-c 取消目前正在執行的關機程序

-f 在重啟計算機時忽略 fsck

-F 在重啟計算機時強迫 fsck

-time 設關機前的時間

二、最簡單的關機指令 halt

halt 就是調用 shutdown -h。 halt 執行時,會殺死應用進程,執行 sync 系統調用,文件系統寫操作完成后就會停止內核,與 reboot 不同之處在於 halt 用來關機,而 reboot 用來重啟系統。

三、使用 reboot 重啟系統

reboot 命令用來重啟系統,用法比較簡單,在終端命令行以 root 用戶執行該命令即可進行系統的重啟。

reboot 命令常用參數如下:

-n 在重啟之前不執行磁盤刷新

-w 做一次重啟模擬,並不會真的重新啟動

-d 不把記錄寫到 /var/log/wtmp 檔案里( -n 參數包含了 -d)

-f 強制重開機

-i 在重開機之前先把所有網絡相關的裝置停止

四、使用 poweroff 終止系統運行

poweroff 就是 halt 或 reboot 命令的軟鏈接。而執行 halt 調用 shutdown -h 。具體如下所示:

[hk@localhost ~]$ which poweroff
/usr/sbin/poweroff
[hk@localhost ~]$ ls -l /sbin/poweroff 
lrwxrwxrwx. 1 root root 16 Nov 14 21:00 /sbin/poweroff -> ../bin/systemctl
[hk@localhost ~]$ ls -lhtr /sbin/halt 
lrwxrwxrwx. 1 root root 16 Nov 14 21:00 /sbin/halt -> ../bin/systemctl
[hk@localhost ~]$ 

五、使用 init 命令改變系統運行級別

init 是所有進程的祖先,其進程號始終為 1 ,所以發送 TERM 信號給 init 會終止所有的用戶進程、守護進程等。 shutdown 使用的就是這種機制。

init 定義了 7 個運行級別,每個運行級別定義如下:

0 停機

1 單用戶模式

2 多用戶

3 完全多用戶模式

4 沒有用到

5 X11(X Window)

6 重新啟動

這些級別在 /etc/inittab 里指定。這個文件是 init 程序尋找的主要文件,最先運行的服務是放在 /etc/rc.d 目錄下的文件。 在大多數的Linux發行版中,啟動腳本都是位於 /etc/rc.d/init.d 中的。這些腳本被用 ln 命令鏈接到 /etc/rc.d/rcN.d 目錄,這里的 N 就是運行級別 0 -6.因此使用 init 命令可以關機或重新啟動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM