Mac可通过三种系统级方法实现无需登录的定时关机或重启:一、pmset命令设置重复性任务;二、shutdown命令执行一次性操作;三、launchd配置后台作业。

如果您希望Mac在特定时间自动执行关机或重启操作,但不依赖用户登录状态或图形界面干预,则需通过系统级计划任务机制实现。以下是三种互不依赖、可单独生效的配置方法:
一、使用pmset命令设置重复性定时关机或重启
该方法直接调用macOS底层电源管理工具pmset,所设任务由系统守护进程统一调度,无需用户登录,支持精确到秒的周期性执行,且开机/关机/重启动作可独立设定。
1、打开“终端”应用(位于“应用程序→实用工具”中)。
2、输入命令查看当前已启用的重复性电源调度:pmset -g sched,按回车确认是否存在冲突任务。
3、如需清除全部现有重复任务,输入:sudo pmset repeat cancel,输入管理员密码后按回车。
4、设置每日晚上22:00关机,输入:sudo pmset repeat shutdown MTWRFSU 22:00:00。
5、设置每周一至周五凌晨3:00重启,追加命令:sudo pmset repeat restart MTWRF 3:00:00。
6、再次运行pmset -g sched验证输出中是否包含对应动作与时间戳。
二、使用shutdown命令设置一次性或绝对时间关机/重启
该方法适用于临时性、单次触发场景,命令注册后即交由系统init进程接管,不受终端关闭影响,执行精度高,且支持相对延迟与绝对时刻两种模式。
1、打开“终端”应用。
2、若需今晚22:30关机,输入:sudo shutdown -h 22:30。
3、若需30分钟后关机,输入:sudo shutdown -h +30。
4、若需60分钟后重启,输入:sudo shutdown -r +60。
5、系统提示输入管理员密码,输入时无字符显示,属正常安全机制,请准确输入后按回车。
6、如中途需取消该次计划,立即在终端中输入:sudo shutdown -c。
三、通过launchd创建后台关机/重启作业
该方法利用macOS原生服务管理框架launchd,以plist配置文件定义定时任务,具备高可靠性、独立于用户会话、支持环境变量与日志记录等特性,适合长期稳定部署。
1、打开“终端”应用。
2、创建关机脚本文件:nano ~/shutdown_at_23.sh。
3、在nano编辑器中输入:#!/bin/bash\nosascript -e 'tell app "System Events" to shut down',按Control+O保存,Control+X退出。
4、赋予执行权限:chmod +x ~/shutdown_at_23.sh。
5、创建plist服务文件:nano ~/Library/LaunchAgents/com.user.shutdown.plist。
6、在plist中写入标准launchd配置,包含Label、ProgramArguments、StartCalendarInterval等必要键值,其中StartCalendarInterval需指定小时与分钟(例如{"Hour" = "23"; "Minute" = "0";})。
7、加载服务:launchctl load ~/Library/LaunchAgents/com.user.shutdown.plist。










