我想使用strace
监视所有正在运行的进程,当进程结束时,strace
的输出应发送到文件中。
以及如何找到每个正在运行的过程 PID。我还想在输出文件中包含进程名称。
$ sudo strace -p 1725 -o firefox_trace.txt
$ tail -f firefox_trace.txt
1725 将是您要监视的进程的 PID(您可以在示例中找到带有"ps -C firefox-bin"的 PID,用于 firefox(
firefox_trace.txt将是输出文件!
获取的方法是找到每个正在运行的 proc PID,并使用命令将它们写入输出文件中!
考虑到文档,-p pid
使用进程 ID pid 附加到进程并开始跟踪。这 跟踪可能随时通过键盘中断信号( 按 -C(。Strace 将通过将自身与跟踪分离来响应 进程离开它(它们(继续运行。多个 -p 选项 除命令外,还可用于连接到多达 32 个进程 (如果至少给出一个 -p 选项,则可选(。
-o
将输出存储到文件,或2>&1
将标准错误重定向到输出,以便您可以过滤它 ( grep
( 或将其重定向到文件 ( > file
(。
要在不知道其PID的情况下监视进程,但是名称,您可以使用pgrep
命令,例如
strace -p $(pgrep command) -o file.out
其中command
是您的进程名称(例如 php
、Chrome
等(。
要了解有关参数的详细信息,请查看man strace
。