Wenn Sie offlineimap über launchd ausführen, wird der Ruhezustand unter OSX nicht überlebt

685
Dominique

Ich bin nicht sehr gut mit allen Dingen vertraut, launchdaber ich habe diese plistDatei geschrieben, die regelmäßig ausgeführt wird offlineimap, um neue Nachrichten von IMAP-Servern abzurufen:

<?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> 

Die Datei befindet sich in ~/Library/LaunchAgents/net.dpo.offlineimap.plist.

Das Problem ist, dass der Prozess nicht aufzuwachen scheint, wenn ich den Computer aus dem Ruhezustand wecke. Laufen

$ launchctl stop net.dpo.offlineimap $ launchctl start net.dpo.offlineimap 

reaktiviert es, aber das scheint die KeepAliveOption zu besiegen .

Ich habe es versucht

<key>KeepAlive</key> <dict> <key>SuccessfulExit</key> <true/> <key>NetworkState</key> <true/> </dict> 

aber ich beobachte das gleiche Verhalten. Ich bin auf OSX 10.9. Mein ~/.offlineimaprcnutzt die autorefreshOption nicht.

Stimmt die plistDatei nicht?

Danke im Voraus!

1

1 Antwort auf die Frage

0
Dominique

Nun, ich kann die Bedeutung von missverstehen KeepAlive. Es stellt sich heraus, dass Homebrew eine plistDatei verteilt hat offlineimap, die die Aufgabe erfüllt:

<?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> 

Der Dämon überlebt jetzt den Schlaf.