2017-06-21 94 views
-1

假設,假設我在後臺啓動一個進程,並將其stdoutstderr重定向到某個任意文件。幾個月後,該過程仍在運行,我忘記了該文件的位置。如果我知道進程的ID,我怎樣才能以編程方式確定發送輸出的位置?Bash:獲取stderr和stdout的位置

+1

中查找'lsof'命令 – 123

回答

3

使用Linux,你可以運行:

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

你可以用'readlink',而不是'LS -l',只得到文件名。 – 123

+0

@ 123:謝謝。或者用GNU find:'find/proc/PROCESS_ID/fd -name'[12]'-printf「%l \ n」' – Cyrus