Я не очень хорошо разбираюсь во всех этих вещах launchd
, но я написал этот plist
файл, который периодически запускается offlineimap
для получения новой почты с серверов IMAP:
<?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>net.dpo.offlineimap</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/offlineimap</string>
<string>-o</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>ProcessType</key>
<string>Background</string>
<key>StartInterval</key>
<integer>1800</integer>
</dict>
</plist>
Файл находится в формате ~/Library/LaunchAgents/net.dpo.offlineimap.plist
.
Проблема в том, что процесс, похоже, не просыпается, когда я вывожу компьютер из спящего режима. Работает
$ launchctl stop net.dpo.offlineimap
$ launchctl start net.dpo.offlineimap
активирует его повторно, но это, похоже, исключает KeepAlive
возможность выбора.
Я пробовал использовать
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<true/>
<key>NetworkState</key>
<true/>
</dict>
но я наблюдаю то же самое поведение. У меня OSX 10.9. Мой ~/.offlineimaprc
не использует эту autorefresh
опцию.
Что-то не так с plist
файлом?
Заранее спасибо!
решение1
Ну, я, возможно, неправильно понимаю значение KeepAlive
. Оказывается,Домашнее пивораспространил plist
файл, offlineimap
который выполняет эту работу:
<?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>KeepAlive</key>
<false/>
<key>Label</key>
<string>homebrew.mxcl.offline-imap</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/offline-imap/bin/offlineimap</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>RunAtLoad</key>
<true />
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
</dict>
</plist>
Теперь демон переживает сон.