我正在尝试在新 Mac 上设置数据库备份。我已经创建了脚本,并创建了 launchd plist 文件。但是,任务似乎反复运行,而不是每天运行一次。我将 StartInterval 设置为 86400,但 StartInterval 似乎没有任何影响。
我该怎么做才能让它每天运行一次,而不是连续运行?
plist文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>label</key>
<string>com.dave.mysqlbackup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/dave/Sites/mysqldump/mysqldump.sh</string>
</array>
<key>OnDemand</key>
<false/>
<key>StartInterval</key>
<integer>86400</integer>
</dict>
</plist>
谢谢!
答案1
通过阅读launchd.plist
手册页,它也看起来像替换:
<key>OnDemand</key>
<false/>
和:
<key>KeepAlive</key>
<false/>
可能会修复您现有的 plist。事实上,在我的测试中,这解决了问题。使用StartInterval
60 秒,我的程序大约每 10 秒运行一次,直到我将其替换OnDemand
为KeepAlive
。
您也可以直接将您的 shell 脚本放入其中/etc/periodic/daily
。