2016-02-12 112 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