微软最近为 Windows Sysinternals 工具集中的 Process Monitor 应用程序打造了 Linux 版本,并将其以 MIT 协议开源了出来。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.04 LTS 版本,内核要求 4.18 及以上,并且不高于 5.3 版本。