Answers:
您可以获取该进程的标准文件描述符,例如stdout
:
tail -f /proc/<pid>/fd/1
# ls -la /proc/24510/fd/1 lrwx------ 1 root root 64 Oct 31 08:34 /proc/24510/fd/1 -> socket:[444026]
这里有一些选择。一种是将命令的输出重定向到文件,然后用于tail
查看实时添加到该文件的新行。
另一个选择是在中启动您的程序screen
,这是一种基于文本的终端应用程序。屏幕会话可以进行附加和分离,但名义上只能由同一用户使用,因此,如果要在用户之间共享它们。
否则,如果您愿意,您可以跟踪该过程并查看它的作用strace
:
strace -e trace=open -p 22254 -s 80 -o output.txt
-p PID
:使用进程ID PID附加到进程并开始跟踪。-s SIZE
:指定要打印的最大字符串大小(默认为32)。-o filename
:将跟踪输出写入文件名而不是屏幕(stderr)。您可以使用下面给出的这些命令在另一个终端上附加一个正在运行的进程:
retty
(手册页:retty)reptyr
screen
例:
screen -S PID
retty $(pgrep PID)
reptyr PID
sudo apt-get install retty
但是retty几乎没有限制。查看答案中提到的手册页。