爲什麼Linux中關機很重要
- 異步的磁盤/內存數據傳輸模式
- 多人多任務的環境
在Linux中,每個程序都是在後臺執行的,因此,在看不到的屏幕背後其實很多人同時在主機上工作,如果此時關機,其他人的數據可能就此中斷。
另外在計算機中,所有的數據都要被讀入內存後,才能被CPU處理。在Linux系統中,爲了加快數據讀取速度,在默認的情況下,某些已經加載內存中的數據將不會直接被寫回硬盤,而是先暫存在內存中。如果此時關機,數據沒有被寫會硬盤,就會造成數據的更新不正常。
關機前需要做的事
查看系統的使用狀態
- who:目前誰在線(who命令講解)
- netstat -a:網絡聯機狀態(netstat命令講解)
- ps -aux:後臺執行的程序(ps命令講解)
通知在線用戶關機的時刻
- shutdown -k now 'This system will reboot'(shutdown命令稍後介紹)
將數據同步寫入硬盤
- sync
關機、重啓命令
shutdown
shutdown [-t sec] [-arkhcfF] time(min) [warning message]
參數:
- -t sec:-t 後面加秒數,幾秒後關機
- -k:只是發送警告消息
- -r:將系統服務停掉後就重啓
- -h:將系統服務停掉後就關機
- -n:不經過init程序,直接以shutdown功能關機
- -f:關機並開機後,強制略過fsck磁盤檢查
- -F:系統重啓之後,強制進行fsck磁盤檢查
- -c:取消已經在進行的shutdown命令內容
example:
- shutdown -h 10 'I will shutdown after 10 mins'
十分鐘後關機 - shutdown -h now
立刻關機 - shutdown -h 20:25
系統在20:25關機 - shutdown -r now
立刻重啓 - shutdown -k now 'This system will reboot'
僅發出警告信件的參數,系統並不會關機
reboot
reboot [-nwdfi]
- -n : 在重開機前不做將記憶體資料寫回硬盤的動作
- -w : 並不會真的重開機,只是把記錄寫到 /var/log/wtmp 檔案裏
- -d : 不把記錄寫到 /var/log/wtmp 檔案裏(-n 這個參數包含了 -d)
- -f : 強迫重開機,不呼叫 shutdown 這個指令
- -i : 在重開機之前先把所有網絡相關的裝置先停止
參考文獻
- 《鳥哥的Linux私房菜》