首页 > 解决方案 > 确定在 Linux 中使用给定可执行文件启动的所有进程

问题描述

我需要收集\记录在执行 Perl 脚本期间用于在我的机器上启动进程的所有命令行,该脚本恰好是测试自动化脚本。这个 Perl 脚本使用各种命令行多次启动有问题的可执行文件(MySQL),我想检查这些调用的所有命令行。这样做的正确方法是什么?我看到的一种可能性是在 shell 脚本的循环中运行类似“ps -aux | grep mysqld | grep -v grep”的东西,并将结果捕获到文件中,但是我必须对此进行一些后期处理并删除重复项等等,由于时间问题,我可能会错过一些进程命令行。有没有更好的方法来实现这一点。

标签: shell

解决方案


处理 ps 输出总是会错过一些进程。它只会捕获当前存在的那些。最好的方法是修改 Perl 脚本以在每个命令执行之前或之后记录它。

如果这不是一个选项,您可以通过运行以下命令获取 perl 脚本的子 pid:

pgrep -P $pid -a

-a给出完整的进程命令。$pid是 perl 脚本的 pid。然后只处理那些。


推荐阅读