Wie lese ich die Standardausgabe aus einem vom System ausgeführten Skript?

Wie lese ich die Standardausgabe aus einem vom System ausgeführten Skript?

Ich möchte ein Skript debuggen, das ich in platziert habe /etc/pm/sleep.d. In meinem Skript gebe ich einen echoBefehl aus, um den Status zu melden.

Wo kann ich diese Ausgabe lesen? Ich denke an etwas wie oder vielleicht dmesgeine Datei in ?/var/log

Ist das der bessere Weg? Was ist die Standardpraxis beim Debuggen von Bash-Skripten, die vom System ausgeführt werden sollen (wie die in /etc/init.d/oder . Xinit)?

Antwort1

Ich habe herausgefunden, dass echoSie statt verwenden können, loggerum Befehle zur Fehlerbehebung in das Systemprotokoll auszugeben.

logger "Oh no"

Anschließend können Sie die Ausgabe in /var/log/syslog überprüfen.

sudo tail /var/log/syslog

Antwort2

Wie Sie bereits erwähnt haben, haben Sie in Ihrem Skript eine Echo-Anweisung.

Bearbeiten Sie nun Ihr Skript und dies wie am Anfang der Datei nach Shebang.

> /tmp/myoutput

myoutput ist nur ein Dateiname im /tmp-Mount, Sie können wählen, was Sie möchten.

Danach, wo immer Sie eine Echo-Anweisung in Ihrem Skript haben wie diese

echo "something"

ändere es in

echo "something" >> /tmp/myoutput

das ist alles. So haben Sie bei jeder Ausführung Ihres Skripts den aktuellen Überblick darüber, was mit Ihrem Skript passiert ist.

verwandte Informationen