微软最近为 Windows Sysinternals 工具集中的Process Monitor 应用程序打造了Linux 版本,并将其以 MIT协议开源了出来。
▲Windows 上的Procmon
Process Monitor(以下简称 Procmon)是一种进程监控工具,为开发者提供了简便有效的方式来跟踪系统调用(syscall)活动。该工具能够帮助诊断程序崩溃、资源占用率过高,甚至是潜在的恶意感染等问题。
Sysinternals 工具集在 Windows 上堪称经典,功能强大。现在,Linux 用户也可以尝试使用 Procmon 来监控系统进程。
在 Linux 上使用 Procmon 时,可以使用以下参数指定要监视的进程 ID 或特定的系统调用:
- Usage: procmon [OPTIONS] OPTIONS -h/--help Prints this help screen
- -p/--pids Comma separated list of process ids to monitor
- -e/--events Comma separated list of system calls to monitor
- -c/--collect [FILEPATH] Option to start Procmon in a headless mode
- -f/--file FILEPATH Open a Procmon trace file
假设要监视进程 ID 738 和 2657:
- sudo procmon -p 738,2657
若要监视 PID 738 列出的所有读写调用,可以使用以下命令:
- sudo procmon -p 738 -e read,write
目前,构建 Linux 版 Procmon 应用需要Ubuntu 18.04LTS 版本,内核要求 4.18 及以上,并且不高于 5.3 版本。