2.3 Linux系统的关闭与重启动
因为UNIX/Linux采用异步写和延迟写机制,大部分数据操作都在缓冲区内进行,并没有实时的写入设备,如果强行关机会导致数据丢失,严重者可造成系统瘫痪。因此,在切断电源之前必须首先关闭系统,绝不能断电了事。Linux系统的关闭可以在字符或图形界面下进行。
2.3.1 字符界面
在字符界面下常用的关机/重启命令有shutdown、halt、reboot、poweroff和init,它们都可以达到关闭系统的目的,但每个命令的工作过程是不同的。
1.halt命令
halt命令的功能是关闭系统,在执行过程中,终止所有应用和系统进程,将所有数据写入存储介质,最后关闭系统。其常用方法为:
参数-f用于不调用shutdown而强制快速关机或重启;-p用于在关闭系统时关掉电源。
halt [-f] [-p]
一般情况,使用-p参数在关闭系统后,会自动关闭电源。如果计算机不这样做,在看到“System halted.”消息后,可以手动切断电源。
2.reboot命令
reboot命令的工作过程与halt命令差不多,但它在关闭系统时会重新启动。
3.poweroff命令
poweroff命令等同于halt -p,关闭系统时同时关掉电源。
4.init和telinit命令
系统内运行着一个init进程,它负责系统的初始化和运行级别的切换。telinit和init命令的作用是告诉init进程作运行级切换,它的用法为:
init runlevel telinit runlevel
Linux/UNIX有7个运行级或运行状态,定义如下(参见/etc/inittab)。
(1)0:关闭系统。
(2)1:单用户模式。
(3)2:多用户使用模式,但没有NFS功能。
(4)3:完全多用户模式。
(5)4:没有使用,用户可自定义。
(6)5:完全多用户模式,并且支持X-Windows(默认运行级)。
(7)6:重新启动。
init命令的使用示例如下:
#init 0 #关机
#init 6 #重新启动 #init 1 #切换到单用户
5.shutdown命令
1)功能及用法
shutdown命令可以安全地关闭系统,在执行系统关闭与命令发出之间可以指定一个时间延迟,以供用户做准备并从容退出。使用shutdown命令时,将在关机前向系统内的所有用户发送通知或警告信息,告诉系统发生了什么及如何处理。其用法为:
shutdown [-krhfFc] time [warn_msg]
2)参数说明
shutdown命令的部分参数如表2-1所示。
表2-1 shutdown命令的部分参数
说明:当不带关机选项时,如-h、-H、-r,默认切换到运行级1,即单用户模式;若要通过shutdown-c撤销已经发出的shutdown命令,必须在与发出shutdown命令不同的终端上进行。
3)shutdown使用示例
#shutdown-r now #立刻重新启动 #shutdown-h now #立刻关机 #shutdown-k now'Hey Lets go now.' #发出警告信息,但没有真的关机 #shutdown-h 10:42'10:42将关闭系统,请届时退出' #10:42关机 #shutdown-r+20'20min后将重启系统,请届时退出' #20min后重启系统 #shutdown-c #撤销已下达的shutdown命令。注意,必须在其他终端才能使用此命令 #shutdown now #切换至单用户模式(不加任何选项时)
2.3.2 图形界面
在图形界面下,用户可以通过“系统”→“关机”选项(如图2-6所示),打开如图2-8所示的关机对话框。用户可以选择“关机”(Shut down)、“重新启动”(Reboot)、“休眠”(Hibernate)或“取消”(Cancel)按钮进行关机、重启系统、休眠或撤销。
图2-8 关机对话框