Ich weiß nicht, was der Exit-Status von 78 bedeutet, aber ich würde nicht erwarten, dass dieses Skript etwas Erkennbares tut, wenn es als Startagent ausgeführt wird, da seine Ausgabe nicht irgendwo weitergeleitet wird. Wenn Sie es von Terminal aus ausführen, wird seine Ausgabe an dieses Terminalfenster angehängt, daher wird dort das "Hallo" angezeigt. Launchd hat jedoch keine Verbindung zu Terminal (oder einem anderen relevanten Ausgabeziel), so dass das "Hallo" verworfen wird. Wenn Sie prüfen möchten, ob es ausgeführt wird, können Sie seine Ausgaben (Standardausgabe und Fehlerausgabe) in Dateien umleiten, indem Sie diese Schlüssel zur .plist hinzufügen (und sie dann entladen und erneut laden):
<key>StandardOutPath</key> <string>/Users/yangyy/hello-output.txt</string> <key>StandardErrorPath</key> <string>/Users/yangyy/hello-errors.txt</string>
Es ist auch möglich, dass launchd ein anderes Problem hat, selbst wenn das Skript gestartet wird. Um tail -f /var/log/system.log
herauszufinden, ob launchd selbst Probleme meldet, schauen Sie in die Systemprotokolldatei ( oder führen Sie /Applications/Utilities/Console.app aus). Versuchen Sie dann, den Agenten zu entladen + neu zu laden, und prüfen Sie, ob relevante Elemente im Protokoll angezeigt werden.