Linux shutdown 命令详解
一、命令简介
shutdown 命令用于 关闭(关机)、重启或进入单用户模式,适用于 Linux 和 Unix 系统。它可以指定 定时关机,或者 立即关机,并允许向在线用户发送警告信息。
相比 halt 和 poweroff,shutdown 更加安全,因为它会优雅地终止进程,同步磁盘数据,确保系统安全关闭。
二、命令语法
shutdown [选项] [时间] [警告消息]
三、命令选项
选项作用-h关闭系统(默认行为)。-r关闭后重启系统。-c取消已安排的 shutdown 计划。-P关机并断电(等同于 poweroff)。-H关机但不切断电源(等同于 halt)。-k仅发送警告信息,不实际执行关机。now立即执行 shutdown 操作。+m指定多少分钟后关机(如 +10 表示 10 分钟后关机)。hh:mm指定具体时间关机(如 23:00 表示晚上 11 点关机)。
四、常见用法
1. 立即关机
shutdown -h now
立即关闭系统,并断开电源。
2. 定时关机(30 分钟后)
shutdown -h +30 "系统将在 30 分钟后关闭,请保存您的工作。"
系统将在 30 分钟后 关闭,并向所有在线用户发送警告信息。
3. 在指定时间关机(晚上 11 点)
shutdown -h 23:00 "服务器将在晚上 11 点进行维护,请及时保存数据。"
会在 23:00 关机,并通知所有用户。
4. 取消已安排的关机
shutdown -c
如果已计划 shutdown,可以使用此命令取消。
5. 立即重启
shutdown -r now
立即重启系统。
6. 定时重启(1 小时后)
shutdown -r +60 "系统将在 1 小时后重启,请保存您的工作。"
系统将在 60 分钟后 重新启动,并通知用户。
7. 仅发送警告,不关机
shutdown -k +15 "测试系统将在 15 分钟后关机(仅警告,不实际关机)。"
系统不会真正关机,但所有在线用户会收到警告消息。
8. 进入单用户模式
shutdown now
系统进入 单用户模式,仅 root 用户可用。
五、常见问题及解决方案
1. 普通用户无法执行 shutdown
问题:运行 shutdown 时出现:
shutdown: Need to be root
解决:
需要 root 权限或 sudo:
sudo shutdown -h now
也可以为普通用户添加 shutdown 权限:
sudo visudo
添加:
username ALL=(ALL) NOPASSWD: /sbin/shutdown
这样 username 用户可以无密码运行 shutdown。
2. 定时关机无法取消
问题:已经计划了定时关机,但 shutdown -c 无效。
解决:
确保 shutdown 进程仍在运行:
ps aux | grep shutdown
手动终止:
killall shutdown
3. 关机后不自动断电
问题:执行 shutdown -h now 后,系统关闭但设备仍保持通电状态。
解决:
改用 poweroff:
shutdown -P now
检查电源管理模块:
lsmod | grep acpi
若未加载,尝试:
modprobe acpi
六、总结
shutdown 适用于 安全关机,可 定时关机、重启,并通知用户。
shutdown -h now 立即关机,shutdown -r now 立即重启。
shutdown -c 取消已安排的关机任务。
shutdown -k 仅发送警告,不实际关机。
如果需要更快的关机方式,可使用 poweroff 或 halt。
这里是封面: