使用它的pid读取任何进程的输出

是否可以通过使用它的pid将终端附加到已经运行的进程,类似于使用fg命令进行作业。

您可以获取该进程的标准文件描述符,例如stdout

 tail -f /proc//fd/1 

这里有一些选择。 一种是将命令的输出重定向到文件,然后使用’tail’查看实时添加到该文件的新行。

另一种选择是在’screen’中启动你的程序,这是一种基于文本的终端应用程序。 屏幕会话可以附加和分离,但名义上只能由同一个用户使用,所以如果你想在用户之间共享它们

否则,如果您希望您可以跟踪过程并看看它在做什么

$ 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