我有需要收集\ log在执行恰好是测试自动化脚本的Perl脚本的过程中用来启动计算机上的进程的所有命令行。这个Perl脚本使用各种命令行多次启动有问题的可执行文件(MySQL),我想检查这些调用的所有命令行。正确的方法是什么?我看到的一种可能性是在Shell脚本中循环运行“ ps -aux | grep mysqld | grep -v grep”之类的东西,并将结果捕获到文件中,但随后我必须对此进行一些后期处理并删除重复项等等,由于时序问题,我可能会错过一些过程命令行。有没有更好的方法可以实现这一目标。
处理ps输出始终会丢失某些过程。它将仅捕获当前存在的那些。最好的方法是修改Perl脚本以在执行每个命令之前或之后记录每个命令。
如果不是这样,可以通过运行以下命令获取perl脚本的子pid:
pgrep -P $pid -a
-a
给出完整的处理命令。 $pid
是perl脚本的pid。然后处理那些。