在 shell 脚本中使用 strace 监视所有正在运行的进程



我想使用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是您的进程名称(例如 phpChrome等(。

要了解有关参数的详细信息,请查看man strace

最新更新