2017-06-21 6 views
-1

Sagen wir, hypothetisch, ich starte einen Prozess im Hintergrund und umleiten seine stdout und stderr in eine beliebige Datei irgendwo. Monate später läuft der Prozess noch und ich habe vergessen, wo diese Datei ist. Wenn ich die ID des Prozesses kenne, wie kann ich den Ort programmatisch bestimmen, an den er seine Ausgabe sendet?Bash: get location von stderr und stdout

+1

den 'lsof' Befehl – 123

Antwort

3

Mit Linux können Sie laufen:

ls -l /proc/PROCESS_ID/fd/1 /proc/PROCESS_ID/fd/2 
+2

nachschlagen können Sie' statt 'ls -l' readlink' verwenden, um nur den Dateinamen zu erhalten. – 123

+0

@ 123: Danke. Oder mit GNU find: 'find/proc/PROCESS_ID/fd -name '[12]' -printf"% l \ n "' – Cyrus