说到linux系统中的关机命令与重启命令,在之前文章中多有介绍。
做为linux运维与系统管理人员,需要掌握linux常用关机命令shutdown、halt、poweroff、init的用法,包括linux关机命令(shutudown、halt、init)、linux 关机命令用法总结等,正常的关机顺序,是保障linux系统良好稳定运行的基础。
在linux系统中, 常用的重启命令有:
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启。
linux下常用关机命令:
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
第二部分,Linux 关机小技巧
在 linux 下关机有多种选择,可以从菜单关机,也可以从命令行关机。
方式多种多样,可以有关机(power off)、待机(suspend)、休眠(hibernate)。
可以随时进入待机与休眠状态,无须将所有工作一个一个保存,并关闭一个又一个的应用软件。因为休眠所保存的是当前的“状态”,所有打开的程序、设置及窗口排列等都不会改变。另外开机和关机的过程速度快。
在开机方面,以 Ubuntu 来说,如果 Power off 后再开机,每隔三差五的系统就要进行磁盘检查,很耗费时间。要注意待机与休眠的区别,待机(Suspend)是挂起到内存,关机后需要保持对内存供电,不能完全关闭电源,但是这种方式重启动的速度最快。
休眠(Hibernate)是挂起到硬盘,可以完全关闭电源。推荐大家多用待机与休眠,好处是显而易见的,以我的系统为例,在我的系统上运行着两个 kvm daemon 及一个 emacs daemon,如果每次都 Power off,这种繁琐可想而知。
在 GNOME 下实现待机与休眠很简单,直接从菜单点就可以了。
可是在 wmii、Awesome 及 FVWM 等 Window Manager 下怎么办?关机的命令是 shudown,可是查看 man 并没有 suspend 及 hibernate 选项。系统也没有 suspend 及 hibernate 命令。Google 了 N 次也没有找到答案,只好每次都退出 Window Manager,到登录界面去休眠(Hibernate)。(www.jb200.com 脚本学堂)
后来想到,既然是 GNOME 登录菜单上的命令,那命令应该是跟 GNOME 有关的了。
打开 GNOME Terminal,输入 gnome- 后 TAB 自动补全,果然发现一个命令:gnome-power-cmd,就是它了。
待机:$ gnome-power-cmd suspend
休眠:$ gnome-power-cmd hibernate
第三部分,linux关机命令详解
在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。
Linux centos重启命令:
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
Linux centos关机命令:
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
1.shutdown
shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。
而在linux操作系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。(www.jb200.com 脚本学堂 整理)
这让像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为重启。
另外,还有 telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。