Ich habe Apples scheinbar unkomplizierte Dokumente verwendet , um einen LaunchDaemon zum Ausführen eines von mir geschriebenen Node.js-Skripts zu erstellen.
Hier ist die plist
Datei. Es handelt sich im Grunde genommen genau um ein Kopieren und Einfügen aus Apples Dokumenten, das alle 300 Sekunden ausgeführt wird:
<?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.wintr.eodemail</string>
<key>ProgramArguments</key>
<array>
<string>~/projects/eod_email/eod</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>StandardOutPath</key>
<string>/var/log/eod-email.log</string>
<key>StandardErrorPath</key>
<string>/var/log/eod-email.log</string>
<key>Debug</key>
<true/>
</dict>
</plist>
Hier ist der Fehler, den ich bekomme /var/log/system.log
:
Jul 22 10:55:52 Nick-Cox com.apple.xpc.launchd[1] (com.wintr.eodemail[7097]): Service could not initialize: 14E46: xpcproxy + 13421 [1402][7D917364-B96E-3F93-B923-A89B5BF5736D]: 0x2
Was ich getan habe:
- Es hat die gleichen Berechtigungen wie die übrigen Dateien in / Library / LaunchDaemons (
-rw-r--r--
im Besitz von root). - Ich habe die Dokumente für xpc gelesen , aber das hat nicht viel geholfen.
- Ich habe sichergestellt, dass das Skript Node.js ausreichend zulässig ist (777) und über die Befehlszeile ausgeführt werden kann (es ist).
- Versuchte den absoluten Pfad zur Datei (
/Users/nickcox/projects/eod_email/eod
) und stellte sicher, dass ichlaunchctl unload (daemonname)
und lieflaunchctl load (daemon name)
Dies scheint viel komplizierter zu sein als Cron, der laut diesen Apple-Dokumenten anscheinend veraltet ist. Was muss ich tun, damit dieses Skript nach einem Zeitplan ausgeführt wird?