这已经多少天了?来记录一下情况吧,自从上次以来,重启问题再也没有出现过,看来应该是彻底解决了,以下是完整解决办法:
1.写一个 clear_pmset_schedule.command 脚本,里面其实主要就是:sudo /usr/bin/pmset schedule cancelall >> ~/pmset_clear.log 2>&1 ,完整脚本如下:
#!/bin/bash
# 自动清除 macOS 中所有计划唤醒任务
echo "Clearing scheduled power events at $(date)" >> ~/pmset_clear.log
# 先打印当前的计划任务到日志中
echo "Current scheduled power events:" >> ~/pmset_clear.log
/usr/bin/pmset -g sched >> ~/pmset_clear.log 2>&1
# 清除所有计划任务
echo "start to cancel events:" >> ~/pmset_clear.log
sudo /usr/bin/pmset schedule cancelall >> ~/pmset_clear.log 2>&1
echo "after cancel, system events:" >> ~/pmset_clear.log
/usr/bin/pmset -g sched >> ~/pmset_clear.log 2>&1
echo "-------------------over---------------------" >> ~/pmset_clear.log
2.但是这样是不够的,因为命令中有 sudo ,系统自动运行的时候,是无法交互式输入密码的,所以把 pmset 命令加入到 sudo 免密指令中, 运行:sudo visudo, 在最后增加以下两行,分别是:用户, 指令等
bokix ALL=(ALL) NOPASSWD: /usr/bin/pmset schedule cancelall
bokix ALL=(ALL) NOPASSWD: /usr/bin/pmset
3. 在用户目录/Users/bokix/Library/LaunchAgents 中增加启动配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist
PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN'
'
http://www.apple.com/DTDs/PropertyList-1.0.dtd'>
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.clearpmset</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Users/bokix/bin/clear_pmset_schedule.command</string>
</array>
<key>StartInterval</key>
<integer>1800</integer> <!-- 秒 = 30 分钟 -->
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/clearpmset.out</string>
<key>StandardErrorPath</key>
<string>/tmp/clearpmset.err</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>WorkingDirectory</key>
<string>/Users/bokix</string>
</dict>
</plist>