# 正确关机的方法
在 linux 下由于支持多终端机,还有就是程序或服务都是后台运行,如果直接采取按下电源来关机时, 则其他的人的数据可能就此中断。
另外,若不正常关机,则可能造成文件系统的损坏(因为来不及将数据回写到文件中,所以有些服务的文件就会有问题)
所以正常情况下,要关机时需要注意:
观察系统的使用状态
- who:查看目前有谁在线
netstat -a
:查看网络的联机状态ps -aux
:查看后台运行的程序
这些指令可以让你稍微了解主机目前使用状态,可以判定是否可以关机了,后续会继续讲解这些指令
通知在线使用者关机的时刻
可以使用 shutdown 指令来达到:给在线的使用者一些时间来结束他们的工作
[mrcode@study ~]$ sudo shutdown [sudo] password for mrcode: Shutdown scheduled for Sat 2019-10-05 03:43:32 CST, use 'shutdown -c' to cancel. [mrcode@study ~]$ Broadcast message from root@study.centos.mrcode (Sat 2019-10-05 03:42:32 CST): The system is going down for power-off at Sat 2019-10-05 03:43:32 CST!
1
2
3
4
5
6
7指令命令之后,进行了一个广播消息,并告知在某个具体的时间进行关机
正确的关机指令使用
例如 shutdown 与 reboot 两个指令
# 关机重启相关指令
- 将数据同步写入硬盘:sync
- 惯用的关机指令:shutdown
- 重启,关机:reboot、halt、poweroff
# 数据同步写入磁盘:sync
利用缓存来加快数据的读取速度,所以有将内存中的数据强制写入磁盘这么一说, reboot、halt、poweroff 指令会自动调用 sync 指令
# 惯用的关机指令 shutdown
该指令必须使用 root 身份才能执行。
该命令会通知系统内的各个程序(processes)、服务等进行关闭,shutdown 可以达成以下工作:
- 可以自由选择关机模式:关机或重启
- 可以设定关机时间:立刻、未来的一个时间
- 可以自定义关机信息:在关机前,将设置的信息广播给在线的 user
- 可以仅发出警告信息:有时候可能需要测试、或则明确告知使用者的场景下,就可以使用该功能,但是可以不关机
语法如下
/sbin/shutdown [-krhc] [时间 [警告信息]]
- k:不要真的关机,只发送警告信息
- r:在将系统的服务停掉之后就重新启动(常用)
- h:将系统的服务停掉之后,立即关机(常用)
- c:取消已经在进行的 shutdown 指令内容
- 时间:指定系统关机的时间,若没有时间,则默认 1 分钟后自动进行
注意:老版本系统时间是必须加的,而新版本没有时间则默认了一个时间
下面来测试下
# 立刻关机,now 相当于 0 的状态
shutdown -h now
# 系统在今天的 20:25 分关机,若在 20:27 分才下单此指令,则隔天关机
shutdown -h 20:25
# 十分钟后关机
shutdown -h +10
# 立刻重启
shutdown -r now
# 30 分钟后重启,并显示后面信息给所有在线的使用者
shutdown -r +30 '要关机了'
# 只发送信息,而不关机,笔者实测这个没有看到效果,上面的都有效果
shutdown -k noew '吓唬你的'
2
3
4
5
6
7
8
9
10
11
12
# reboot、halt、poweroff
这三个指令可以进行重新启动与关机的任务,这三个指令调用的函数库都差不多(都是调用 systemctl 这个重要的管理命令), 使用 man reboot,会同时显示着三个指令给你看
一般只用记住 reboot、poweroff 指令就行了,而鸟哥一般重启时会使用以下的指令
sync; sync; sync; reboot
- reboot:重启
- halt:系统停止,屏幕可能会保留系统已经停止的信息;实测就是只显示一句话,像卡死了一样
- poweroff:系统关机
更多的选项功能,请务必使用 man 去查询
# 实际使用管理工具 systemctl 关机
该工具很复杂,目前只需要了解有关关机的部分即可,后续章节会讲到
halt、poweroff、reboot、shutdown 等等都是调用 systemctl 指令的。下面是有关关机的语法
systemctl [指令]
halt :系统停止,屏幕显示一句话,假死的样子
poweroff:进入关机模式
reboot:直接重新启动
suspend:进入休眠模式
2
3
4
5
6
← 超简单文字编辑器 nano 重点回顾 →