Skript kann nicht über launchctl geladen werden "Befehl nicht gefunden"

2351
jan

Ich habe ein Problem beim Laden eines Skripts, um einen Ordner über fswatch in / Library / LaunchAgents zu sehen. Das Skript läuft einwandfrei, wenn es vom Terminal ausgeführt wird, aber über meine Plist gibt es "Befehl nicht gefunden" für fswatch im Protokoll.
Ich wette, es hat damit zu tun, wo das Skript / die angegebenen Pfade platziert wird oder nicht, aber ich kann es nicht herausfinden. Hier ist es:

<?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>Debug</key> <true/>  <key>Label</key> <string>org.papers.fswatch</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/usr/local/bin/papersfswatch.sh</string> </array> <key>RunAtLoad</key> <true/>  <key>StandardErrorPath</key> <string>/Users/x/Documents/Computer/Logs/papersfswatch.log</string> <key>StandardOutPath</key> <string>/Users/x/Documents/Computer/Logs/papersfswatch.log</string> </dict> </plist> 

Wenn ich es mit lade sudo launchctl load /Library/LaunchAgents/org.papers.fswatch.plistbekomme lief ein Service nur für 0 Sekunden Warnung und im Log bekomme ich

 /usr/local/bin/papersfswatch.sh: line 2: fswatch: command not found 

Zeile 2 ist natürlich der Befehl fswatch. Warum findet es es nicht, wenn es von Terminal gefunden wird, und wie zeige ich es darauf? Jede Hilfe sehr geschätzt!

J

2

1 Antwort auf die Frage

1
jan

Problem gelöst.

Es scheint, dass das Skript den absoluten Pfad fswatch(aus welchem ​​Grund auch immer) benötigt, wenn es über eine Plist ausgeführt wird. In diesem Fall funktioniert das /usr/local/bin/fswatch Ausführen von Terminal fswatchgut, in diesem Fall jedoch nicht.