必须是root权限。shutdown会安全地将系统关机。在系统将要关机前,所有登入的使用者都会被通知,而且login(1)这个指令会被冻结。直接关机或者是延迟一段特定的时间才关机都是有可能的,这是藉着所有程序(process)都会收到系统所送达信号(signal) SIGTERM. 这让一些象vi(1) 这一类的程式有时间可以储存目前正在编的档案,而象处理邮件(mail) 和新闻(news)的程式可以正常地离开等等。shutdown 执行他的工作是藉着送信号(signal) 给init 程序,要求他改变runlevel. Runlevel 0是被用来停机(at) ,runlevel 6则是用来重新启动(reboot)系统,而runlevel 1 则是被用来让系统进入管理工作可以进行的状态;这是预设的,假如没有-h也没有-r参数给shutdown 。要想了解在停机(halt) 或者重新开机(reboot) 过程中做了哪些动作,你可以在这个档案/etc/inittab里看到这些runlevels 相关的资料。
参数 :
-t seconds : 设定在几秒钟之后进行关机程序
-k : 并不会真的关机,只是将警告讯息传送给所有只用者
-r : 关机后重新开机
-h : 关机后停机
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机
-c : 取消目前已经进行中的关机动作
-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)
-F : 关机时,强迫进行 fsck 动作
time : 设定关机的时间
message : 传送给所有使用者的警告讯息
shutdown -h now 代表立即关机(now),shutdown后面要加时间,比如"shutdown -r 5"就是5秒后重启