Linux关机与重启命令详解

时间:2024-03-19 16:58:00

由于Linux版本很多,比如:CentOS、RedHat、Ubuntu、Debian、Fedora等等,本人由于对其它一些版本没测试过,本人对于CentOS使用经验较足,为了不产生非议,保证文章中所有的命令均可正确执行,本文以CentOS为讲。

关机命令篇

在linux中,关机命令有很多,常用的有shutdown、halt、poweroff、reboot、、init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,本文将逐一进行讲解。
1、shutdown关机命令:(shutdown命令比较特殊,必须要切换到ROOT用户权限才能执行,普通用户可以在终端输入: su root 命令,然后输入密码便进入 root 用户)。
该命令是最常用的,这个命令在执行时会通知系统内的各个进程,并且将通知关闭系统中的 run level 内的一些服务。该命令还可以达成如下的工作。
A:可以*选择关机模式:是要关机、重启或进入单用户操作模式。
B:可以设置关机时间:是要立即关机,还是倒计时关机、特定时间关机。
C:可以自定义关机消息:在关机前可以将自己设置的消息传送给在线用户。
D:可以仅发出警告消息警告吓唬用户而不是要真正关机。
E:可以选择是否启用 fsck 检查文件系统。
举例:
Linux关机与重启命令详解
①、shutdown -h:将系统的服务停掉之后才关机。(这里不做演示)
②、shutdown -h now:立即马上关机。(这里不做演示)
Linux关机与重启命令详解
③、shutdown -h 5:系统将在5分钟后关机,与Windows不同,在Windows里是代表5秒,Linux中代表5分钟。
④、shutdown -c:取消倒计时关机/重启、特定时间关机/重启计划。
Linux关机与重启命令详解⑤、shutdown -h 21:00:系统将在21:00自动关机。
Linux关机与重启命令详解
⑥、shutdown -h +10:系统在设定的关机时间在加10分钟才自动关机。
Linux关机与重启命令详解
⑦、shutdown -h 20 ‘I will shutdown after 20 mins‘:告诉大家,这部机器会在二十分钟后关机!并且会显示在目前登陆者的屏幕前方!
Linux关机与重启命令详解
⑧、shutdown -f:关机并在开机之后,强制略过 fsck 的磁盘检查。(这里不做演示)
⑨、shutdown -F:系统重启之后,强制进行 fsck 的磁盘检查。(这里不做演示)

⑩、shutdown -n:不经过 init 程序,直接以 shutdown 的功能来关机。(这里不做演示)

⑪、shutdown -k:不是要真正的关机,发出警告消息警告吓唬用户。(这里不做演示)

2、halt、poweroff关机命令: 这两关机命令调用的函数库都差不多,其中reboot也基本调用同样函数库,但是它们也有不同之处。
halt实质是调用shutdown -h。halt在执行时﹐会杀死应用进程﹐并执行sync系统调用﹐文件系统写操作完成后就会停止内核。
halt 参数说明:
   [-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
   [-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
   [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
   [-f] 没有调用shutdown而强制关机或重启。
   [-i] 关机〔或重启〕前﹐关掉所有的网络接口。
   [-p] 该选项为缺省选项。就是关机时调用poweroff。

3、poweroff关机命令 : 该命令相当于 halt + 切断电源指令,poweroff 在关闭操作系统之后还会发送 ACPI 指令,通知电源切断电源供应,如果系统不支持ACPI功能,poweroff 等同于halt。

4、init关机命令: init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel), init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有 telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。

重启命令篇

1、shutdown重启命令:(shutdown命令比较特殊,必须要切换到ROOT用户权限才能执行,普通用户可以在终端输入: su root 命令,然后输入密码便进入 root 用户)。
①、shutdown -r:将在系统的服务停掉之后才重启。(用法跟shutdown关机命令一样,可查看如上文档,这里就不做演示)
②、shutdown -r now:立即重启。(用法跟shutdown关机命令一样,可查看如上文档,这里就不做演示)
③、shutdown -r 5:系统将在5分钟后重启。(用法跟shutdown关机命令一样,可查看如上文档,这里就不做演示)
④、shutdown -r 21:00:系统将在21:00自动重启。(用法跟shutdown关机命令一样,可查看如上文档,这里就不做演示)
⑤、shutdown -r 20 ‘I will shutdown after 20 (用法跟shutdown关机命令一样,可查看如上文档,这里就不做演示)mins‘:告诉大家,这部机器会在二十分钟后重启!并且会显示在目前登陆者的屏幕前方!
Linux关机与重启命令详解
(shutdown重启用法跟shutdown关机命令用法一样,只需要把 -h换成 -r,可查看如上文档,这里就不做过多废话)

2、reboot重启命令: 该命令与halt、poweroff调用的函数库都差不多,只不过resboot只能用来触发重启。reboot它的参数与halt也相差不多。(这里就不过多重复讲解)

总结:

reboot、halt、poweroff 都不是安全的关机/重启命令,因为这三个命令在关闭系统时是 杀死 所有的进程而不是 正常的终止 进程,此时如果还有其他用户在系统上工作时可能会造成数据丢失,所以尽量使用 shutdown 命令来关闭/重启系统。
Linux关机与重启命令详解
—————————————————————————————————————————————

版权声明:发帖不易,转载请附上原文出处链接及本声明。