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

2

Ich habe ein Problem beim Laden eines Skripts zum Überwachen eines Ordners über fswatch in / Library / LaunchAgents. Das Skript wird ordnungsgemäß ausgeführt, wenn es vom Terminal aus ausgeführt wird. Über meine plist erhalte ich jedoch den Befehl "Befehl nicht gefunden" für fswatch im Protokoll.
Ich wette, es hat damit zu tun, wo das Skript platziert ist / Pfade angegeben sind 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 damit lade sudo launchctl load /Library/LaunchAgents/org.papers.fswatch.plistgibt es mir einen Service der nur für 0 Sekunden lief und im Log ich bekomme

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

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

J

jan
quelle

Antworten:

1

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 reicht das /usr/local/bin/fswatch Ausführen vom Terminal aus fswatch, in diesem Fall jedoch nicht.

jan
quelle