请参阅后台进程的输出

时间:2013-10-03 11:36:35

标签: c linux process background stdout

我在Debian上测试一个用C编写的路由算法。在算法源文件中,我将一个标志设置为1,以便在stdout上打印路由决策。问题是:运行此文件的进程是后台进程。我怎么能看到标准输出?

3 个答案:

答案 0 :(得分:4)

您可以使用以下行检查您的流程正在执行的操作。

$ strace -p $!

$!提供上一个后台进程的进程ID。请记住在与后台进程相同的控制台中运行上述行。

答案 1 :(得分:2)

假设您已经启动并运行了要监听的进程,并且您不想像Laszlo建议的那样使用重定向停止并重新运行它:您可以使用strace来收听它 - { {3}}

基本上它可以跟踪所有系统调用活动,但包括打印

添加-p <pid>以将其附加到您想要的流程。添加-e write以过滤大部分内容并仅获取输出写入

例如:

> grep somestring . -R >& /dev/null &
  [2] 8093
> strace -p 8093 -e write
...here goes the output...

答案 2 :(得分:1)

您将程序的输出重定向到一个文件,然后您可以在该文件中观看输出。