Wie kann ich OSX launchd plist Argumente hinzufügen, um die Ausgabe in eine Protokolldatei umzuleiten?

Ich habe viele verschiedene Variationen davon ausprobiert, kann es aber einfach nicht zum Laufen bringen.

Ich habe eine plist-Datei:

<?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.ilium007.handbrake</string>
        <key>ProgramArguments</key>
        <array>
                <string>/bin/bash</string>
                <string>/Users/ilium007/support/scripts/handbrake/handbrake.sh &gt;&gt; /Users/ilium007/support/scripts/handbrake/logs/handbrake_encode.log</string>
                <!--<string>&gt;&gt;</string>-->
                <!--<string>/Users/ilium007/support/scripts/handbrake/logs/handbrake_encode.log</string>-->
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StartInterval</key>
        <integer>60</integer>
</dict>
</plist>

Beachten Sie die Kommentare dort.

Ich möchte die Ausgabe des Skripts "handbrake.sh" in eine Protokolldatei umleiten und habe versucht, dies zu tun. Unter OSX wird jedoch weiterhin der Fehler "no such file" in system.log angezeigt.

Nov  3 18:03:54 macmini com.ilium007.handbrake[15348]: /bin/bash: /Users/ilium007/support/scripts/handbrake/handbrake.sh >> /Users/ilium007/support/scripts/handbrake/logs/handbrake_encode.log: No such file or directory Nov  3 18:03:54 macmini com.apple.launchd.peruser.501[162] (com.ilium007.handbrake[15348]): Exited with code: 127

Wenn ich die plist wie folgt ändere, wird sie ausgeführt, aber ich erhalte kein Protokoll. Daher gehe ich davon aus, dass nur das erste Argument 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.ilium007.handbrake</string>
        <key>ProgramArguments</key>
        <array>
                <string>/bin/bash</string>
                <string>/Users/ilium007/support/scripts/handbrake/handbrake.sh</string>
                <string>&gt;&gt;</string>
                <string>/Users/ilium007/support/scripts/handbrake/logs/handbrake_encode.log</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StartInterval</key>
        <integer>60</integer>
</dict>
</plist>

Der Befehl, den ich über launchd ausführen möchte, lautet:

/Users/ilium007/support/scripts/handbrake/handbrake.sh >> /Users/ilium007/support/scripts/handbrake/logs/handbrake_encode.log

In der Protokolldatei wird nie etwas angezeigt. Wenn ich diesen Befehl über das Terminal ausführe, wird der Inhalt im Protokoll angezeigt. Jede Hilfe wäre dankbar.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage