![如何监视一段时间内可执行文件的所有执行](https://linux22.com/image/28507/%E5%A6%82%E4%BD%95%E7%9B%91%E8%A7%86%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E5%86%85%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E7%9A%84%E6%89%80%E6%9C%89%E6%89%A7%E8%A1%8C.png)
我知道如何监控过程。诸如此类的命令top
可以监视给定流程实例的 CPU 时间和内存使用情况。
但是假设我希望给定的可执行文件在接下来的一个小时内运行多次,并且我想测量它运行的次数以及它消耗的 CPU 时间。有什么命令可以做到这一点?
答案1
你可以这样做:
mv my-executable my-executable.bin
并创建my-executable
一个包装脚本,该脚本执行以下操作:
#! /bin/bash -
{ time "$0.bin" "$@" 2>&3 3>&-; } 3>&2 2>> /tmp/times.log
该脚本可以向日志添加更多信息,例如启动时间、由谁、传递的参数......
BSD 进程统计,至少在 Linux 上确实报告 CPU 时间(用户 + 系统),但不是像那样以累积方式time
(子进程 CPU 时间不计入父进程)