2017-06-21 95 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