2016-02-12 114 views
1

使用strace的監視所有正在運行的過程中,我想監視使用strace,當一個進程結束strace的輸出應被髮送到一個文件中的所有正在運行的進程。在shell腳本

,以及如何找到每個正在運行的進程內PID。我也想在輸出文件中包含進程名稱。

+1

「我想監視使用'strace' ... _all_正在運行的進程」不,你不知道。真。如果僅僅是因爲運行'strace'會創建一個新的進程,然後你會嘗試監視,這將啓動另一個進程,但是還有其他重要的原因,這也是一個壞主意。您可能需要完善一下您需要完成的任務的定義。 – twalberg

回答

0
$ sudo strace -p 1725 -o firefox_trace.txt 

$ tail -f firefox_trace.txt 

1725將要監視(你可以找到與「PS -C火狐斌」的PID,爲Firefox中的例子)

的工藝在PID和firefox_trace.txt會成爲輸出文件!

的方式得到了是要找到每個正在運行的進程內PID,然後使用命令將它們寫在輸出文件!


考慮doc, -p PID

附加到進程與進程ID PID,並開始跟蹤。可以隨時通過鍵盤中斷信號( CTRL-C)終止跟蹤。 strace將通過脫離被跟蹤的 進程來離開它(他們)繼續運行。多個-p選項 除了命令 (如果至少給出一個-p選項,則這是可選的)可用於連接多達32個進程。

+0

如何找到每個正在運行的proc PID。我也想在輸出文件中包含進程名稱。 –

+0

@ R.Anu目前無法驗證,但我相信「ps aux」應該會爲您提供完整的procs列表......然後嘗試用正則表達式或其他方法將其剪切,以獲取proc的PID列表! –

0

使用-o到輸出存儲到文件,或2>&1標準錯誤重定向到輸出,這樣你就可以將其過濾(grep),或者它重定向到文件(> file)。

要監視進程不知道它的PID,但名稱,你可以使用pgrep命令,例如

strace -p $(pgrep command) -o file.out 

其中command是您的處理(例如phpChrome等)的名稱。

要了解更多有關參數,檢查man strace