Linux是一个多用户的系统,程序都是在后台运行,如果直接按关机键进行关机可能导致其他用户或者程序的终止,因此我们还是需要学习下怎样正确的关机。即使我们说服务器一般是长期运行的,但是遇到打补丁,重启等也需要了解一定的知识,最后,不正确的关机有可能导致文件系统损坏。
1、关机前检查有多少用户登录系统
通过who
命令查看在线用户。who
命令可以查询在线用户,登录时间,登录ip等信息。
[root@Zabbix6 ~]# who
root pts/0 2024-01-02 10:02 (192.168.80.22)
关机或者重启尽量选择在夜间或者业务空闲时进行操作,减少对业务造成影响或者出现故障无法恢复等情况出现。
2、查看当前系统运行的程序
通过ps -aux
查看运行的程序,Linux的ps
命令是一个常用的进程管理命令,用于显示系统中正在运行的进程以及它们的状态、PID、CPU使用率、内存使用量等信息,与之前的命令一样可以通过选项或参数实现不同的功能:
[root@Zabbix6 ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 241964 14820 ? Ss 2023 2:33 /usr/lib/systemd/systemd --switched-root --system --deserialize 18
root 2 0.0 0.0 0 0 ? S 2023 0:02 [kthreadd]
root 3 0.0 0.0 0 0 ? I 2023 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I 2023 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I 2023 0:00 [kworker/0:0H-events_highpri]
root 9 0.0 0.0 0 0 ? I 2023 0:00 [mm_percpu_wq]
root 10 0.0 0.0 0 0 ? S 2023 0:06 [ksoftirqd/0]
root 11 0.0 0.0 0 0 ? I 2023 33:42 [rcu_sched]
root 12 0.0 0.0 0 0 ? S 2023 0:00 [migration/0]
root 13 0.0 0.0 0 0 ? S 2023 0:00 [watchdog/0]
root 14 0.0 0.0 0 0 ? S 2023 0:00 [cpuhp/0]
root 15 0.0 0.0 0 0 ? S 2023 0:00 [cpuhp/1]
root 16 0.0 0.0 0 0 ? S 2023 0:03 [watchdog/1]
root 17 0.0 0.0 0 0 ? S 2023 0:00 [migration/1]
root 18 0.0 0.0 0 0 ? S 2023 0:04 [ksoftirqd/1]
root 20 0.0 0.0 0 0 ? I 2023 0:00 [kworker/1:0H-events_highpri]
root 21 0.0 0.0 0 0 ? S 2023 0:00 [cpuhp/2]
3、查看当前网络连接
通过netstat
命令查看网络连接状态。netstat是在内核中访问网络连接状态及其相关信息的程序,它是一个监控TCP/IP网络的非常有用的工具。它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
[root@Zabbix6 ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:zabbix-agent 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:zabbix-trapper 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 Zabbix6:37368 192.168.80:zabbix-agent TIME_WAIT
tcp 0 0 Zabbix6:37400 192.168.80:zabbix-agent TIME_WAIT
tcp 0 0 Zabbix6:39718 KLQAX.keli:zabbix-agent TIME_WAIT
tcp 0 0 localhost:zabbix-agent localhost:53904 TIME_WAIT
tcp 0 0 Zabbix6:40174 KLQAX.keli:zabbix-agent TIME_WAIT
tcp 0 0 localhost:zabbix-agent localhost:53694 TIME_WAIT
tcp 0 0 localhos:zabbix-trapper localhost:37058 TIME_WAIT
tcp 0 0 Zabbix6:40028 KLQAX.keli:zabbix-agent TIME_WAIT
tcp 0 0 Zabbix6:37320 192.168.80:zabbix-agent TIME_WAIT
tcp 0 0 Zabbix6:46562 192.168.80:zabbix-agent TIME_WAIT
tcp 0 0 Zabbix6:40218 KLQAX.keli:zabbix-agent TIME_WAIT
tcp 0 0 Zabbix6:http 192.168.131.101:55061 ESTABLISHED
4、通知在线用户即将关机或者重启
1、shutdown命令
shutdown命令是用于关闭或重启计算机的命令。它用于控制计算机的关闭或重启,并提供了多种参数选项,以便用户自定义操作行为,一般来说只有root管理员有权限执行关机重启操作,毕竟影响太大了。常用参数:
shutdown的命令格式:shutdown [-krhc] [时间] [警告信息]
# -h 指定时间关机使用now或者数字0代表立即关机
[root@localhost ~]# shutdown -h now
[root@localhost ~]# shutdown -h 0
# 也可以指定确切时间,应该是24小时格式吧
[root@localhost ~]# shutdown -h 11:00
# 或者在多久时间之后关机,-h以分钟为单位,在十分钟之后关机
[root@localhost ~]# shutdown -h +10
# 使用-r 进行重启,添加now表示立刻重启
[root@localhost ~]# shutdown -r now
# 添加警告信息,会通过tty发送到所有用户窗口显示。
[root@localhost ~]# shutdown -r now 'This system will reboot'
# 取消关机计划,使用shutdown -c,如果想要取消关机的计划,通过-c参数选项取消
[root@localhost ~]# shutdown -c
2、reboot命令
reboot
命令可以进行重启系统,与shutdown -r
效果一致。
# 重启
roott@localhost ~]# reboot
# 强制重启
roott@localhost ~]# reboot -f
3、halt命令
与shutdown 命令差不多。用于关机。
# 关机
[root@localhost ~]# halt
4、poweroff命令
# 关机
[root@localhost ~]# poweroff
5、sync 由于我们运行程序是先在内存中运行,然后再写入磁盘,所以如果突然关机可能导致内存里面的数据无法写入磁盘出现数据丢失,可以使用sync
进行同步写入磁盘。现在上述的关机与重启命令执行前会执行sync
,但是保险起见可以手动执行然后再关机或重启。
# 同步写入磁盘,命令不会有返回值
[root@localhost ~]# sync
总结:关机或者重启是重大的系统操作,一定要提前确认好各项准备工作,手动执行下sync
,然后通知其他用户系统即将关闭,做到正确地关机,常用的命令为shutdown
和reboot
命令。
本文由 mdnice 多平台发布