2013-10-03 36 views
0

我在Debian上測試了一個用C寫成的路由算法。在算法源文件中,我設置了一個標誌1來啓用在stdout上打印路由決策。問題是:運行此文件的進程是後臺進程。我怎樣才能看到標準輸出?查看後臺進程的輸出

回答

1

您將程序的輸出重定向到一個文件中,然後您可以觀察該文件中的輸出。

2

假設你有你想要聽已經投入運行的過程中,你不想停下來和重定向重新運行它作爲拉茲洛提示:您可以使用strace聽吧 - How should strace be used?

基本上它可以跟蹤所有系統調用活動,但包括打印

添加-p <pid>將它附加到您所需的過程。添加-e write過濾大部分的東西並獲得唯一的輸出寫入

對於例如爲:

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

您可以使用以下行來檢查你的程序在做什麼。

$ strace -p $! 

$!給出了最後一個後臺進程的進程ID。請記得在後臺進程的相同控制檯中運行上述行。