原因:
- 由于Linux是多用户,多任务操作系统,其所有程序或服务都是在后台运行,当前用户使用时,后台可能也有很多用户在使用;
- 关于数据,系统在处理数据的时候,基本上都是先保存在内存中,在一定时间后才会写入硬盘,做持久化;
基于以上两个要求,安全关机要做下以下:
- 观察系统状态:who --> 当前在线用户;netstat -a -->网络状态;ps -aux -->当前后台执行的程序;
- 手动同步内存数据到硬盘做持久化 : sync 命令
- 通知在线用户关机时间 : shutdown 命令可实现
- 使用正确的关机命令 : shutdown 、 reboot等
Shutdown 命令详解:
可实现的功能:
- 自由选择关机模式: 关机?重启?进入单用户械?
- 设置关机时间: 定时或立刻?
- 自定义关机信息:将关机信息发送给在线用户
- 仅发出警告,并不关机: shutdown 实现
- 是否要用fsck检查文件系统
语法:
shutdown [-t 秒] [-arkhncfF] [时间] [警告信息]
参数说明,如果不加入时间参数,则会进入单用户模式:
- -t sec : 多少秒后关机
- -k : 不关机,只发警告
- -r : 停止服务后重启
- -h : 停止服务后关机
- -n : 不经过init,直接关机
- -f : 关机并启用后,强制略过fsck的磁盘检查
- -F : 重启后,强制进行fsck的磁盘检查
- -c : 取消关机
例子
- shutdown -h now <=等价=> shutdown -h +0 : 马上关机
- shutdown -h 20:20 : 当天的20:20关机
- shutdown -h +10 : 10分钟后关机
- shutdown -r now <=等价=> shutdown -r +0 <=等价=> shutdown -r 0
- shutdown -h now 'Close server now!' : 发送信息给在线用户,立即关机
其它相关命令参考:
- reboot
- halt
- poweroff
- init