Linux正确的关机操作
- 观察系统的使用状态:
如果要看目前有谁在在线,可以下达who
这个指令,而如果要看网络的联机状态,可以下达netstat -a 这个指令,而要看背景执行的程序可以执行
ps -aux`这个指令。使用这些指令可以让你稍微了解主机目前的使用状态!当然啰,就可以让你判断是否可以关机了(这些指令在后面 Linux 常用指令中会提及喔!) - 通知在线使用者关机的时刻:
要关机前总得给在线的使用者一些时间来结束他们的工作,所以,这个时候你可以使用shutdown
的特别指令来达到此一功能。 - 正确的关机指令使用:
例如shutdown
与reboot
两个指令! - 将数据同步写入硬盘中的指令: sync
- 惯用的关机指令: shutdown
- 重新启动,关机: reboot, halt, poweroff
若你是使用远程管理工具(如透过 pietty 使用 ssh 服务来从其他计算机登入主机), 那关机就只有 root 有权力而已喔
数据同步写入磁盘命令:sync
在CentOS以及其他Unix和Linux系统中,sync
命令用于将内存中缓存的数据(即“脏”数据,尚未写入磁盘的数据)同步到磁盘中。这是一个非常重要的命令,特别是在系统关机、重启或需要确保数据安全存储的情况下。
命令功能
sync
命令会强制操作系统将所有挂载的文件系统中的数据缓冲区内容写入相应的块设备。通常情况下,操作系统会把数据先写入缓存以提高性能,但这也意味着在断电或系统崩溃时,缓存中的数据可能会丢失。sync
命令通过将这些数据同步到磁盘,减少了这种风险。
- 性能影响:由于
sync
命令会强制写入所有缓存数据到磁盘,所以在执行期间可能会导致系统性能暂时下降。特别是在有大量缓存数据的时候,写入操作可能需要耗费一定时间。 - 频繁使用:尽管
sync
提高了数据安全性,但频繁使用可能会对系统性能造成影响。一般情况下,操作系统会根据需要自动进行写入操作,因此不需要频繁手动运行sync
。
总结来说,sync
命令是一个确保数据安全和一致性的重要工具,特别是在操作系统关机、重启或拔出可移动存储设备之前,使用它可以有效地防止数据丢失。
shutdown
[root@study ~]shutdown [-krhc] [时间] [警告讯息]
选项与参数:
-k : 不要真的关机,只是发送警告讯息出去!
-r : 在将系统的服务停掉之后就重新启动(常用)
-h : 将系统的服务停掉后,立即关机。 (常用)
-c : 取消已经在进行的 shutdown 指令内容。
时间 : 指定系统关机的时间!时间的范例底下会说明。若没有这个项目,则默认 1 分钟后自动进行。
范例:
命令实例 | 说明 |
---|---|
reboot | 重启 |
shutdown -r now | 立即重启 (-r代表重启的意思reboot) |
shutdown -r 11:30 | 预订时间重启 |
shutdown -r +1 | 1分钟后重启 |
halt | 关机 |
shutdown -h now | 立即关机 |
shutdown -h 11:30 | 预订时间关机 |
shutdown -h +1 | 1分钟后关机 |
init 0 | 关机 |
init 6 | 重启 |
systemctl与关机有关的命令
- 其实上述关机命令,都是在调用systemctl命令
在CentOS以及其他基于systemd的Linux发行版中,reboot
、shutdown
等传统的关机和重启命令与systemctl
命令是密切相关的。systemctl
是systemd的主要命令行工具,用于控制systemd系统和服务管理器。systemd统一了系统管理命令,使得管理系统服务、挂载点、设备等更加一致和灵活。
传统命令与systemctl
的关系
-
reboot:
- 传统的
reboot
命令用于重新启动系统。 - 在使用systemd的系统中,
reboot
命令实际上是调用了systemctl reboot
。
reboot
相当于
systemctl reboot
- 传统的
-
shutdown:
- 传统的
shutdown
命令用于关机或重启系统。它可以接受不同的参数,比如shutdown -h now
用于立即关机,shutdown -r now
用于立即重启。 - 在使用systemd的系统中,
shutdown
命令实际上是调用了systemctl poweroff
或systemctl reboot
。
shutdown -h now
相当于
systemctl poweroff
shutdown -r now
相当于
systemctl reboot
- 传统的
-
poweroff:
- 传统的
poweroff
命令用于关闭系统电源。 - 在使用systemd的系统中,
poweroff
命令实际上是调用了systemctl poweroff
。
poweroff
相当于
systemctl poweroff
- 传统的
-
halt:
- 传统的
halt
命令用于停止所有CPU功能,但不一定关闭电源。 - 在使用systemd的系统中,
halt
命令实际上是调用了systemctl halt
。
halt
相当于
systemctl halt
- 传统的
使用systemctl
进行关机和重启
systemctl
提供了一组统一的命令来进行系统管理,包括关机和重启:
-
重启系统:
systemctl reboot
-
关机并关闭电源:
systemctl poweroff
-
停止所有CPU功能(类似于halt):
systemctl halt
-
计划关机:
systemctl poweroff --schedule "HH:MM"
-
计划重启:
systemctl reboot --schedule "HH:MM"