不能僅僅扳動電源開關的另乙個理由是,在乙個多工系統中,後台可能正執行著許多程式,隨意地關閉電源損失會非常慘重的。通過進行適當的關機過程,你可以確信所有的後台程序都能儲存它們的資料。
以下詳細介紹停止與重啟動命令,它們分別為init,runlevel,telinit,halt,shutdown,reboot
init
init[option][runlevel]
系統管理命令。
選項-t seconds
當執行級別改變時,在sigterm之後經過seconds秒傳送sigkill。預設值為20。
檔案init是任意一台unix機器在啟動時都要執行的第乙個程序。它驗證所有檔案系統的完整性,然後用fork和exec建立和執行其他程序,就像由/etc/inittab指定的那樣。哪乙個程序可以執行由/runlevel控制。所有結束的程序都被記錄在/var/run/utmp/和/var/log/wtmp中。當執行級改變時,init給所有不能在新的執行級別上執行的程序傳送sigterm訊號,20秒後,傳送sigkill訊號。
執行級別
當前執行級別可以由telinit改變,telinit通常僅僅是到init的乙個鏈結。預設的執行級別隨發布版的不同而不同,但以下是標準級別:
0 停止系統。
1, s, s 單使用者模式。
6 重新啟動系統。
q,q 重讀/etc/inittab。
可以在/etc/inittab檔案中查出自己系統的執行級別。
runlevel
系統管理命令。顯示以前和當前系統的執行級別。
telinit
telinit[option][runlevel]
系統管理命令。發訊號通知init改變系統的執行級別。init是所有程序的祖先,telinit實際上是到init的乙個鏈結。
選項-t seconds
在傳送sigterm訊號seconds秒之後傳送sigkill。預設值為20。執行級別
預設的執行級別隨發布版的不同而不同,但是,也有一些標準:
0 停止系統。
1 , s, s 單個使用者。
6 重新啟動系統。
a, b , c 僅僅處理在/etc/inittab中執行級別被標記為a,b或c的條目。
q, q 重讀/etc/inittab檔案。
在/etc/inittab檔案中查閱系統的執行級別。
halt
halt[options]
系統管理命令。在檔案/var/log/wtmp中插入一條記錄日誌。如果系統處於執行級別0或6,則停止所有程序;否則呼叫shutdown -nf。
選項-d 禁止在/var/log/wtmp中寫。
-f 即使在shutdown -nf被正常呼叫時也呼叫halt(也就是說,即使不是執行級別0或6,也強制呼叫halt)。
-n 禁止對sync的正常呼叫。
-w 禁止正常執行,只把記錄日誌寫到/var/log/wtmp中。
shutdown[options]when[message]
系統管理命令。終止所有程序。when可以是指定的時間(以hh:mm格式)、要等待的分鐘數(以+m格式),或者now。一條廣播訊息通知所有使用者離開系統。給程序傳送sigterm訊號,以讓它們體面地退出。呼叫/etc/init執行是的關機,其操作之一是把系統置於執行級別1。只有特權使用者才能執行shutdown命令。在預設或者有定義的情況下,廣播訊息在寬限期期間以規則的間隔進行廣播,越臨近關閉時間,訊息的廣播越頻繁。
選項-c 取消正在進行中的關閉操作。
-f 快速重新啟動,在重新啟動時禁止對fsck的常規呼叫。
-h 當關閉完成時停止系統。
-k 輸出警告資訊,但禁止實際的關閉。
-n 不呼叫init就執行關閉。
-r 當關閉完成時重新啟動系統。
-t sec 在殺死程序與改變執行級別之間確保延時sec秒。
例:# shutdown -h +10 'we will install a new disk. system should
> be back on-line in three hours.'
這將警告所有使用者系統將在十分鐘後關閉,並且他們最好馬上退出以防止資料的丟失。警告資訊將顯示在所有登入的使用者的終端上。
reboot
reboot[options]
系統管理命令,停止檔案系統,關閉系統,然後重新啟動系統。因為這條命令立即停止所有的程序,所以它應該只在單使用者模式下執行。如果系統不在0級或6級上執行,reboot就呼叫shutdown -nf。
選項-d 禁止寫/var/log/wtmp。
-f 即使要正常呼叫shutdown,也呼叫reboot。
-n 禁止對sync的常規呼叫。
-w 禁止正常執行;只是寫/var/log/wtmp。
uptime
輸出當前時間,聯機操作的時間量、當前登陸的使用者數(可以包括同一使用者的多次登陸)以及系統負載平均值。這種輸出也可以由w命令的第一行產生。
說明:sigterm訊號,sigkill訊號,sync,fsck
有兩個訊號可以停止程序:sigterm和sigkill。 sigterm比較友好,程序能捕捉這個訊號,根據您的需要來關閉程式。在關閉程式之前,您可以結束開啟的記錄檔案和完成正在做的任務。在某些情況下,假如程序正在進行作業而且不能中斷,那麼程序可以忽略這個sigterm訊號。
對於sigkill訊號,程序是不能忽略的。這是乙個 「我不管您在做什麼,立刻停止」的訊號。假如您傳送sigkill訊號給程序,linux就將程序停止在那裡。
有些人喜歡使用三次sync來關閉系統,等待磁碟i/o停止,然後關閉電源。如果沒有程式執行著,那麼這和使用shutdown是等同的。然而,這樣做沒有解除安裝任何檔案系統並且可能會導致ext3fs的「乾淨檔案系統」標誌。三次使用sync來關閉系統的方法不值得推薦。
Windows 與Linux 的雙重啟動
windows 與linux 的雙重啟動 由linux 引導 計算機上已存在windows 系統的情況下安裝linux,並且選擇把引導資料寫到 hda1,那麼linux就會自動把windows 系統的 啟動選項新增到啟動選單中以供選擇。雙重啟動問題自動解決,不需贅述。由windows 引導 如果計算...
Windows 與Linux 的雙重啟動
windows 與linux 的雙重啟動 由linux 引導 計算機上已存在windows 系統的情況下安裝linux,並且選擇把引導資料寫到 hda1,那麼linux就會自動把windows 系統的 啟動選項新增到啟動選單中以供選擇。雙重啟動問題自動解決,不需贅述。由windows 引導 如果計算...
Nginx的啟動 停止與重啟 linux
可以選擇任何目錄 cd usr local src cd usr local src wget tar zxvf pcre 8.37.tar.gz cd pcre 8.34 configure make make install cd usr local src wget tar zxvf zlib...