查看后台进程的输出结果

3

我正在Debian上测试一个用C语言编写的路由算法。在算法源文件中,我将一个标志设置为1,以便在stdout上启用路由决策的打印。问题是:运行此文件的进程是后台进程。如何查看stdout?

3个回答

5
您可以使用以下代码来查看您的进程在做什么。
$ strace -p $!

$!给出了最后一个后台进程的进程ID。请记得在与后台进程相同的控制台中运行上述命令。


1
如果原始控制台断开连接,我必须从另一个控制台登录怎么办? - Lewis Chan

4
假设您已经运行了要监听的进程,并且不想像Laszlo建议的那样停止并重新运行它以进行重定向:您可以使用strace来监听它- 如何使用strace? 基本上,它可以跟踪所有系统调用活动,但这包括打印。
添加-p <pid>以将其附加到所需的进程。 添加-e write以过滤大部分内容并仅获取输出写入。
例如:
> grep somestring . -R >& /dev/null &
  [2] 8093
> strace -p 8093 -e write
...here goes the output...

1

你可以将程序的输出重定向到一个文件中,然后你就可以在那个文件中查看输出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接