shutdown执行它的工作是送信号给init程序,要求它改变runlevel,runlevel0被用来停机,6用来重启。man手册中指出,它将以一种安全的方式关机,当系统要关闭时,它会通知所有的已登录用户,并在最后五分钟冻结login。
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-c] cancel current process是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
时间格式可以是now,+m, hh:mm。
man手册中指出,如果没有-f选项,reboot,halt以及poweroff等都是调用shutdown。对于halt,如果无-f选项,实际上就是执行shutdown -h,然后执行sync系统调用,文件系统写操作完成后停止系统。
reboot与halt选项差不多,主要的如下:
-n:防止 sync 系统调用,它用在用 fsck 修补根分区之后,以阻止内核用老版本的超级块覆
盖修补过的超级块。
-w:并不是真正的重启或关机,只是写 wtmp(/var/log/wtmp)纪录。
-f:没有调用 shutdown,而强制关机或重启。
-i:关机(或重启)前,关掉所有的网络接口。
-f:强迫关机,不呼叫 shutdown 这个指令。
-p: 当关机的时候顺便做关闭电源的动作。(仅halt)
-d:关闭系统,但不留下纪录。
fcsk:检查文件系统并尝试修复错误
sync:将存于 buffer 中的资料强制写入硬盘中
init 是一个由内核启动的用户级进程。内核启动之后,就通过启动一个用户级程序init的方式来启动其他用户级的进程或服务。所以,init始终是第一个进程(其PID始终为1)。
运行级就是操作系统当前正在运行的功能级别。这个级别从1到6,具有不同的功能。其功能级别如下:
# 0 - 停机(千万不能把initdefault 设置为0 )
# 1 - 单用户模式
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 - 没有用到
# 5 - X11 (xwindow)
# 6 - 重新启动 (千万不要把initdefault 设置为6——把被你黑掉的linux的initdefault设置为0或6也算是拒绝服务攻击噢!)
shutdown就是通过改变其运行级别以达到关机或者重启的目的。你也可以在终端中输入sudo init 0来关机。
阅读(1761) | 评论(0) | 转发(0) |