Linux 安全关机之shutdown

原因:

  1. 由于Linux是多用户,多任务操作系统,其所有程序或服务都是在后台运行,当前用户使用时,后台可能也有很多用户在使用;
  2. 关于数据,系统在处理数据的时候,基本上都是先保存在内存中,在一定时间后才会写入硬盘,做持久化;

基于以上两个要求,安全关机要做下以下:

  1. 观察系统状态:who --> 当前在线用户;netstat -a -->网络状态;ps -aux -->当前后台执行的程序;
  2. 手动同步内存数据到硬盘做持久化 :  sync 命令
  3. 通知在线用户关机时间 : shutdown 命令可实现
  4. 使用正确的关机命令 : shutdown 、 reboot等

Shutdown 命令详解:

可实现的功能:

  1. 自由选择关机模式: 关机?重启?进入单用户械?
  2. 设置关机时间: 定时或立刻?
  3. 自定义关机信息:将关机信息发送给在线用户
  4. 仅发出警告,并不关机: shutdown 实现
  5. 是否要用fsck检查文件系统

语法:

shutdown [-t 秒] [-arkhncfF] [时间] [警告信息]

参数说明,如果不加入时间参数,则会进入单用户模式:

  1. -t sec : 多少秒后关机
  2. -k : 不关机,只发警告
  3. -r : 停止服务后重启
  4. -h : 停止服务后关机
  5. -n : 不经过init,直接关机
  6. -f :  关机并启用后,强制略过fsck的磁盘检查
  7. -F : 重启后,强制进行fsck的磁盘检查
  8. -c : 取消关机

例子

  1. shutdown -h now  <=等价=> shutdown -h +0 : 马上关机
  2. shutdown -h 20:20 : 当天的20:20关机
  3. shutdown -h +10 : 10分钟后关机
  4. shutdown -r now <=等价=> shutdown -r +0 <=等价=> shutdown -r 0
  5. shutdown -h now 'Close server now!' : 发送信息给在线用户,立即关机

其它相关命令参考:

  1. reboot
  2. halt
  3. poweroff
  4. init