You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS如何实现脚本先退出后执行一次性定时重启任务

macOS 脚本触发延时重启且脚本提前退出的实现方案

方案1:后台运行shutdown命令(最简方案)

直接将shutdown命令丢到后台脱离当前会话,执行命令后会立即返回,不会阻塞脚本运行:

# 1分钟后重启,命令立即返回,不阻塞当前脚本
nohup sudo shutdown -r +1 > /dev/null 2>&1 &

# 此处可以继续执行你需要的其他逻辑,比如上报状态给中央服务器
# 所有逻辑执行完成后脚本直接退出即可,重启会在1分钟后自动触发
  • 说明:
    • nohup 保证命令不会因为当前终端会话关闭而终止,进程会被系统launchd接管
    • 输出重定向到/dev/null避免生成多余的nohup日志文件
    • 末尾的&将命令丢到后台运行,当前脚本不需要等待命令执行完成
    • 系统会自动给所有登录的终端用户发送重启提醒,若需要额外给图形界面用户发通知,可补充执行:
    osascript -e 'display notification "系统将在1分钟后重启,请保存当前工作" with title "系统重启提醒"'
    
    • 需要取消重启时,执行sudo shutdown -c即可。

方案2:使用launchd提交一次性任务(兼容受限环境)

如果环境中禁用了nohup/后台进程,可通过launchd的一次性任务调度实现,不需要配置永久周期规则:

# 提交一次性任务,延迟60秒执行重启命令
launchctl submit -l com.temp.restart -p /sbin/shutdown -o -r -o +1

# 脚本后续逻辑正常执行,完成后直接退出即可
  • 说明:该任务由系统launchd守护进程托管,不会受当前脚本/终端会话的生命周期影响,执行完成后自动清理,不会残留定时规则。

内容的提问来源于stack exchange,提问作者seagull

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:27:01