Wenn ich eine App mit diesem Befehl starte:
/path/to/my/command >> /var/log/command.log
Und der Befehl kehrt nicht zurück. Gibt es eine Möglichkeit, an einer anderen Eingabeaufforderung zu erkennen, auf welche Weise die STDOUT-Umleitung eingestellt ist?
Ich suche sowas auch nicht
cat /proc/PID/redirects
oder
ps -??? | grep PID
aber jede Methode wird ausreichen.
shell
io-redirection
open-files
Reich
quelle
quelle
Ein nützliches Tool, um zu sehen, welche Dateien von welchen Prozessen geöffnet werden
lsof
. Mit können Sie auf einen bestimmten Prozess verweisenlsof -p1234
, und Sie sehen meist die gleichen Informationen, die Siels -l /proc/1234/fd
unter Linux erhalten können, dh, welche Dateien geöffnet sind.Am nützlichsten
lsof
ist es, umgekehrt vorzugehen:lsof /path/to/file
Zeigt an, welche Prozesse diese Datei verwenden.quelle
In vielen Antworten wird erwähnt, dass dies so geschieht:
Ich habe jedoch festgestellt, dass es nicht immer funktioniert. Alternativ
cat
liefert das manchmal Ergebnisse.Wobei {PID} mit dem
ps aux
Befehl gesucht werden kann .Gut zu erwähnen ist auch, dass die Nummer am Ende des Befehls (in diesem Fall fd / 1) für andere Ausgänge geändert werden kann.
quelle