Linux 基础教程 41-系统关机和重启

图片 2

    在Linux系统中,仅仅是关机和重启相关的命令就至少有5个,shutdown、
halt、poweroff、reboot、init
。各个命令作用如下所示:

linux下常用的关机命令有:shutdown、halt、poweroff、init;重启命令有:reboot。下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法。

命令 说明
shutdown 可用于关机、重启。支持定时和通知
halt 停止系统
poweroff 关机
reboot 重启系统
init init 0:关机,init 6:重启

首先来看一下linux下比较常用的一些关机命令

shutdown

常用用法如下所示:

shutdown [选项] 时间 [消息]

其常用选项如下所示

选项 说明
-r 将系统停止后重启
-h 在系统停止后关机
-c 取消关机
-k 发送警告消息并禁止登录。关不是真正要关机
-P 将系统停止后并关闭电源

关机命令:

halt

常用用法如下所示:

halt [选项]

其常用选项如下所示

选项 说明
-f, –force 强制执行halt或reboot,而不调用shutdown
-p, –poweroff 等同于poweroff
-w, –wtmp-only 仅将关机记录写入/var/log/wtmp文件中,而不真正进行关机或重启
-d, –no-wtmp 不将关机记录写入wtmp文件中

1、halt   立刻关机 2、poweroff  立刻关机 3、shutdown -h now
立刻关机(root用户使用) 4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启

poweroff

常用用法如下所示:

poweroff [选项]

其常用选项如下所示

选项 说明
-p, –poweroff 关闭机器
–reboot 重启系统
-f, –force 强制关闭机器
-w, –wtmp-only 仅将关机记录写入wtmp文件中,而不进行关机或重启
-d, –no-wtmp 不将关机记录写入wtmp文件中

重启命令:

reboot

常用用法如下所示:

reboot [选项]

其常用选项如下所示

选项 说明
-p, –poweroff 关闭机器
–reboot 重启机器
-f, –force 强制重启机器
-w, –wtmp-only 仅将重启记录写入wtmp文件中,而不进行关机或重启
-d, –no-wtmp 不将重启记录写入wtmp文件中

1、reboot 2、shutdown -r now 立刻重启(root用户使用) 3、shutdown -r 10
过10分钟自动重启(root用户使用)  4、shutdown -r 20:35
在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

init

常用用法如下所示:

reboot [选项] [命令]

其常用选项如下所示

选项 说明
–help 显示帮助信息
–no-wall 在关机和重启前不发送信息

常用命令如下所示:

命令 说明
0 关闭机器
6 重启机器

下面我们来看看linux的这些具体的关机命令之间的区别和各自的用法

用法示例

# 立即关机
[root@localhost system]# shutdown -h now
# 立即重启
[root@localhost system]# shutdown -r now
# 在指定时间重启
[root@localhost system]# shutdown -r 19:30
# 在3分钟后关机
[root@localhost system]# shutdown -h +3
# 关机并关闭电源
[root@localhost system]# halt -p
# 关机但不写记录
[root@localhost system]# halt -d
# 测试关机
[root@localhost system]# halt -w
# 重启系统
[root@localhost system]# reboot
# 关机并关闭电源
[root@localhost system]# poweroff
# 重启
[root@localhost system]# init 6
# 关机
[root@localhost system]# init 0

在以上命令,使用man查看帮助时,会发现halt、poweroff、reboot是一样的,其他三个命令就是一个程序,如下所示:
图片 1

1.shutdown 安全的关机命令

关机和重启总结

  • shutdown -r 用来重启,等同于reboot
  • shutdown -h -P 用来关闭系统和关闭电源,等同于poweroff
  • poweroff 等同于halt -p
  • shutdown -h 用来关闭系统,但不关闭电源,等同于halt
  • shutdown与reboot/halt的主要区别在于shutdown会给登录系统的用户发送关机或重启的通知消息
  • shutdown -k 仅用于测试关机
  • init依赖于本机init系统,通过情况下,关机的运行级别为0,重启为6

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
图片 2

对于shutdown命令,它是大家都推荐的一个安全的命令,通过参数-h或-r的配合来完成关机或重启。不过在linux系统中只有拥有root权限才可以使用这个命令。所以,虽然大家都推荐用这个命令,但是这个命令用起来真的不太方便:想要用这个命令吗?先去获得root权限吧。shutdown执行关机,是送信号给init,要求它改变运行级别,以此来关机。关机或重启实际上是运行级别的调整,所以我们也可以用init直接调整运行级别来进行关机或重启。使用这个命令时,机器立即关机或重启。它也需要root权限。

那么为什么说shutdown命令是安全地将系统关机呢?

实际中有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失使系统处于不稳定的状态。甚至在有的系统中会损坏硬件设备。而在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结,即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的,还有可能是重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。

shutdown执行它的工作是送信号〔signal〕给init程序,要求它改变
runlevel。runlevel 0 被用来停机〔halt〕,runlevel 6
是用来重新激活〔reboot〕系统,而 runlevel
1则是被用来让系统进入管理工作可以进行的状态,这是预设的。假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作?你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图