方法1:取消已计划的 shutdown 命令
这是最常见的情况,当您使用 shutdown 命令设置了延迟关机(如 shutdown -h 10)时:
- 按组合键
Ctrl + Alt + T打开终端 - 输入命令:
sudo shutdown -c
-c参数表示取消(cancel)计划中的关机。
- 系统会广播取消通知
所有登录用户将收到类似消息:
Broadcast message from root... System shutdown has been cancelled
✅ 适用场景:通过
shutdown、halt或poweroff命令发起的延迟关机。
方法2:取消 at 调度的关机任务
若关机任务通过 at 命令定时执行(如 echo "shutdown now" | at 23:00):
- 查看任务ID
atq
输出示例:
5 Thu Jun 13 23:00:00 2025 a root - 删除对应任务
sudo atrm 5 # 将"5"替换为实际任务ID
方法3:终止已运行的关机进程
若关机命令已执行但仍在倒计时(如 shutdown -h +5):
- 查找关机进程的PID
pgrep -f "shutdown"
输出示例:
1122 - 终止进程
sudo kill -9 1122 # 将"1122"替换为实际PID
方法4:取消 Systemd 定时关机
若使用 systemd 安排关机(如 sudo shutdown -h 22:00):
- 列出定时器
systemctl list-timers
查找
shutdown.target或systemd-halt.service。 - 取消任务
sudo systemctl stop shutdown.target # 停止目标 sudo systemctl disable shutdown.target # 禁用自启
⛔ 无法取消的情况
- 已进入关机流程:若系统开始卸载文件系统或显示
Power down,无法取消。 - 无延迟的立即关机:如
shutdown now或poweroff会直接关闭,无取消机会。
操作注意事项
- 权限要求:取消命令需
root或sudo权限。 - 用户通知:取消后建议通过
wall命令通知所有用户(如wall "关机已取消")。 - 预防误操作:
- 执行关机前添加延迟(如
shutdown -h +2预留2分钟缓冲)。 - 使用
shutdown -k +5发送警告但不真正关机(测试用)。
- 执行关机前添加延迟(如
引用说明
- Linux 内核文档:
man 8 shutdown - Systemd 定时任务管理:
man systemd.timer at命令手册:man at
通过上述方法,您可灵活管理Linux系统的关机计划,建议操作前确认命令参数,避免数据丢失风险。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6372.html