mac每日23:00自动关机并清空剪贴板需用launchd托管复合任务:创建plist文件,内含echo -n '' | pbcopy && sudo shutdown -h now命令,通过launchctl load和enable激活,确保原子执行。

你想让Mac在每天晚上11点自动关机,同时确保关机前清空剪贴板里的敏感内容(比如刚复制的密码、银行卡号或内部文档片段),避免下次开机后误粘贴泄露信息——这需要把关机动作和剪贴板擦除串联成一个原子操作,不能靠两个独立定时任务拼凑。
用终端命令一次性设置每日定时关机+清空剪贴板
打开“终端”(Command + 空格 → 输入“终端” → 回车)。
输入以下命令并回车:
sudo pmset repeat shutdown MTWRFSU 23:00:00
输入管理员密码(屏幕不显示字符,输完直接回车)。
这一步只设置了关机,还没处理剪贴板。pmset本身不支持执行额外命令,所以必须改用launchd方式托管一个复合任务。
创建launchd plist实现关机前清空剪贴板
第一步:用文本编辑器新建配置文件
在终端中输入:
mkdir -p ~/Library/LaunchAgents
touch ~/Library/LaunchAgents/com.user.clipboard-clear-shutdown.plist
第二步:用nano编辑该文件
输入:
nano ~/Library/LaunchAgents/com.user.clipboard-clear-shutdown.plist
第三步:粘贴以下XML内容(注意替换其中的your_username为你的实际用户名):
第四步:保存并退出nano
按 Control + O → 回车确认文件名 → 按 Control + X 退出编辑器。
第五步:加载任务并设为开机启动
输入:
chmod 644 ~/Library/LaunchAgents/com.user.clipboard-clear-shutdown.plist
launchctl load ~/Library/LaunchAgents/com.user.clipboard-clear-shutdown.plist
launchctl enable gui/$(id -u)/com.user.clipboard-clear-shutdown
【必须执行 launchctl enable 这一步,否则重启后任务不会自动激活】
验证是否生效
方法一:立即测试逻辑
在终端中临时运行清理+关机命令(不真关机):
echo -n '' | pbcopy && echo "剪贴板已清空,关机被跳过"
然后手动检查:
pbpaste | wc -c
如果返回 0,说明剪贴板确实为空。
方法二:查看任务状态
输入:
launchctl list | grep clipboard
若输出中包含 com.user.clipboard-clear-shutdown 且状态码非负数,说明已注册成功。
方法三:检查日志
输入:
cat /tmp/clipboard-clear-shutdown.log
正常情况下该文件应存在,且最近一次执行时间与你设定的23:00接近。
取消该定时任务
第一步:停用并卸载
launchctl disable gui/$(id -u)/com.user.clipboard-clear-shutdown
launchctl unload ~/Library/LaunchAgents/com.user.clipboard-clear-shutdown.plist
第二步:删除配置文件
rm ~/Library/LaunchAgents/com.user.clipboard-clear-shutdown.plist
第三步:清理日志
rm /tmp/clipboard-clear-shutdown.log










