如何监视一段时间内可执行文件的所有执行

Dan*_*ell 6 process monitoring executable

我知道如何监控进程。诸如此类的命令top可以监视给定流程实例的 CPU 时间和内存使用情况。

但是假设我希望给定的可执行文件在接下来的一小时内运行多次,并且我想测量它运行了多少次以及它消耗的 CPU 时间。什么是命令?

Sté*_*las 3

你可以这样做:

mv my-executable my-executable.bin
Run Code Online (Sandbox Code Playgroud)

并创建my-executable一个包装脚本,该脚本执行以下操作:

#! /bin/bash -
{ time "$0.bin" "$@" 2>&3 3>&-; } 3>&2 2>> /tmp/times.log
Run Code Online (Sandbox Code Playgroud)

该脚本可以向日志添加更多信息,例如启动时间、由谁、传递的参数......

BSD 进程统计,至少在 Linux 上确实报告 CPU 时间(用户 + sys),尽管不是像那样以累积方式time(子进程 CPU 时间不计入父进程)