原文鏈接:http://www.cnblogs.com/qlqwjy/p/7746364.html
第一、reboot
使用方法:直接在SSH ROOT權限用戶下輸入reboot命令就可以看到The system is going down for reboot NOW的提示,目前就重啟VPS。
reboot的工作過程差不多跟halt一樣?不過它是引發主機重啟?而halt是關機。它的參數與halt相差不多。
第二、shutdown
這個命令可以用來重啟也可以用來關機操作。如果按照完整的命令參數還比較難以,老蔣遵循的是實用,所以就分享我們常用的就可以。
A - 關閉系統且關閉電源
shutdown -h now #立即關閉系統和電源
shutdown -h +10 "10 minute after shutdown" #10分鍾之后關閉系統和電源
B - 利用shutdown重啟電腦
shutdown -r now
當前立即重啟電腦,和上面的reboot是一樣的效果。
還可以用shutdown命令實現自動定時關機的功能,總結如下:
shutdown -r now 關機后重啟
shutdown -h now 關機后不重啟
shutdown -r +10 10分鍾后重啟
shutdown -r 10:00 10點鍾重啟
shutdown -h +10 10分鍾后關機
shutdown -h 10:00 10點鍾關機
以下是測試的過程。
root@localhost ~]#whereis reboot #查找reboot的位置
reboot: /sbin/reboot /usr/share/man/man8/reboot.8.gz
[root@localhost ~]#su user #切換到user
[user@localhost root]$ reboot #執行重啟測試
reboot: Need to be root #提示需要root
[user@localhost root]$ exit #退回到root用戶
exit
[root@localhost ~]# ll /sbin/reboot #查看默認/sbin/reboot的詳細信息
-rwxr-xr-x. 1 root root 13932 Jul 19 2011 /sbin/reboot #注意看前三個為rwx
[root@localhost ~]# chmod u+s /sbin/reboot #增加suid權限
[root@localhost ~]# ll /sbin/reboot #重新查看修改后的/sbin/reboot詳細信息
-rwsr-xr-x. 1 root root 13932 Jul 19 2011 /sbin/reboot #這時候已經變更為rws
[root@localhost ~]# su user #重新切換到user用戶
[user@localhost root]$ reboot #執行reboot指令
Broadcast message from root@localhost.localdomain #重啟成功
(/dev/pts/0) at 21:28 ...
The system is going down for reboot NOW!
另一種方法,使用sudo!
上面這樣做被認為是一種對安全的威脅,因為包括root在內的所有用戶都可以關機和重啟了。比較安全些的方法是使用sudo命令。首先安裝sudo:
#pacman -S sudo
然后,在root用戶下用visudo命令添加以下到/etc/sudoers文件的末端。替換其中的user為你的用戶名,hostname為你的主機名。
user hostname=NOPASSWD: /sbin/shutdown -h now
user hostname=NOPASSWD: /sbin/reboot
或者合並為一行表示
user hostname=NOPASSWD: /sbin/shutdown -h now,/sbin/reboot
現在你的用戶可以用sudo shutdown -h now命令關機,reboot命令重啟了。
方法三:Xfce
在Xfce下,如果你希望用戶利用Hal關機,,需要安裝sudo。然后用visudo -f命令添加以下內容到/etc/sudoers中
對所有用戶:
%users hostname=NOPASSWD:/usr/lib/xfce4/xfsm-shutdown-helper
對單一用戶:
user hostname=NOPASSWD:/usr/lib/xfce4/xfsm-shutdown-helper
替換其中的user為你的用戶名,hostname為你的主機名(你可以用hostname命令得到它)。
這樣你定義了的用戶的“關機”和“重啟”選項就激活了。
原文鏈接:https://www.cnblogs.com/ZhengLiming/p/5875064.html
shutdown命令安全地將系統關機。 有些用戶會使用直接斷掉電源的方式來關閉linux,這是十分危險的。因為linux與windows不同,其后台運行着許多進程,所以強制關機可能會導致進程的數據丟失﹐使系統處於不穩定的狀態﹐甚至在有的系統中會損壞硬件設備。
而在系統關機前使用shutdown命令﹐系統管理員會通知所有登錄的用戶系統將要關閉。並且login指令會被凍結﹐即新的用戶不能再登錄。直接關機或者延遲一定的時間才關機都是可能的﹐還可能重啟。這是由所有進程〔process〕都會收到系統所送達的信號〔signal〕決定的。這讓像vi之類的程序有時間儲存目前正在編輯的文檔﹐而像處理郵件〔mail〕和新聞〔news〕的程序則可以正常地離開等等。
shutdown執行它的工作是送信號〔signal〕給init程序﹐要求它改變runlevel。Runlevel 0被用來停機〔halt〕﹐runlevel 6是用來重新激活〔reboot〕系統﹐而runlevel 1則是被用來讓系統進入管理工作可以進行的狀態﹔這是預設的﹐假定沒有-h也沒有-r參數給shutdown。要想了解在停機〔halt〕或者重新開機〔reboot〕過程中做了哪些動作﹐你可以在這個文件/etc/inittab里看到這些runlevels相關的資料。
shutdown 參數說明:
[-t] 在改變到其它runlevel之前﹐告訴init多久以后關機。
[-r] 重啟計算器。
[-k] 並不真正關機﹐只是送警告信號給每位登錄者〔login〕。
[-h] 關機后關閉電源〔halt〕。
[-n] 不用init﹐而是自己來關機。不鼓勵使用這個選項﹐而且該選項所產生的后果往往不總是你所預期得到的。
[-c] cancel current process取消目前正在執行的關機程序。所以這個選項當然沒有時間參數﹐但是可以輸入一個用來解釋的訊息﹐而這信息將會送到每位使用者。
[-f] 在重啟計算器〔reboot〕時忽略fsck。
[-F] 在重啟計算器〔reboot〕時強迫fsck。
[-time] 設定關機〔shutdown〕前的時間。
2.halt----最簡單的關機命令
其實halt就是調用shutdown -h。halt執行時﹐殺死應用進程﹐執行sync系統調用﹐文件系統寫操作完成后就會停止內核。
參數說明:
[-n] 防止sync系統調用﹐它用在用fsck修補根分區之后﹐以阻止內核用老版本的超級塊〔superblock〕覆蓋修補過的超級塊。
[-w] 並不是真正的重啟或關機﹐只是寫wtmp〔/var/log/wtmp〕紀錄。
[-d] 不寫wtmp紀錄〔已包含在選項[-n]中〕。
[-f] 沒有調用shutdown而強制關機或重啟。
[-i] 關機〔或重啟〕前﹐關掉所有的網絡接口。
[-p] 該選項為缺省選項。就是關機時調用poweroff。
3.reboot
reboot的工作過程差不多跟halt一樣﹐不過它是引發主機重啟﹐而halt是關機。它的參數與halt相差不多。
4.init
init是所有進程的祖先﹐它的進程號始終為1﹐所以發送TERM信號給init會終止所有的用戶進程﹑守護進程等。shutdown 就是使用這種機制。init定義了8個運行級別(runlevel),init 0為關機﹐init 1為重啟。關於init可以長篇大論﹐這里就不再敘述。另外還有telinit命令可以改變init的運行級別﹐比如﹐telinit -iS可使系統進入單用戶模式﹐並且得不到使用shutdown時的信息和等待時間。
例子
shutdown -h now 立刻關機,其中now相當於時間為0的狀態
shutdown -h 20:25 系統在今天的20:25分會關機
shutdown -r now 系統立刻重新啟動
shutdown -r +30 'The system willreboot' 再過30分鍾系統會自動重啟,並顯示后面的信息
shutdown -k now 'The system willreboot' 僅發出警告信件的參數。系統並不會關機