在过去的几年里,微软一直在为 Linux 和开源的利益做着值得称道的工作。 他们开源了许多应用程序,例如 VSCode、.NET、Teams、Edge 浏览器等。最近添加到列表中的是 进程监视器. 进程监视器,很快 普罗克蒙,允许开发人员方便、轻松地跟踪 Linux 系统中的系统调用活动。
Process Monitor 是 Linux 对经典 Procmon 工具的重新构想 系统内部套件 的 Windows 工具。 Sysinternals 套件包含多个用于管理、诊断、故障排除和监控 Microsoft Windows 系统的工具。 Process Monitor 是 Sysinternals 套件的一部分。
Process Monitor 是 Windows 的高级监控工具,可显示实时文件系统、注册表和进程/线程活动。 它在 Windows 操作系统中实时监控文件系统、注册表、进程、线程和 DLL 活动。
当然,Linux 有一个本地命令行实用程序,名为 Strace
跟踪系统调用和信号。 Strace 很酷,但在我看来,Procmon 的观点总是更清晰、更好。
微软几个月前发布了适用于 Linux 的 Procmon。 Procmon 是写在 C++ 其源代码可在 GitHub 中免费获得。
在 Linux 中安装进程监视器
确保您已添加 微软的 Linux 软件存储库 在你的 Linux 系统中。 例如,运行以下命令在 Ubuntu Linux 上添加 Microsoft Linux 存储库:
$ wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo apt update
启用 Microsoft 存储库后,运行以下命令在 Ubuntu 上安装 Procmon:
$ sudo apt install procmon
在其他 Linux 发行版上,替换 apt
使用您的发行版的包管理器。 例如,您可以将 Procmon 安装在 Fedora,RHEL使用命令:
$ sudo dnf install procmon
使用进程监视器跟踪 Linux 中的系统调用活动
要跟踪 Linux 系统上的所有进程和系统调用,请启动进程监视器作为 sudo
或者 root
没有任何选项的用户:
$ sudo procmon
示例输出:
要查看任何进程的事件属性,只需选择它并按 ENTER 键。
您可以使用功能键 F1 到 F9 执行各种任务,例如显示帮助、排序过程、搜索、过滤、导出、显示统计信息等。例如,按 F8 显示前 10 个系统调用统计信息。 要退出进程监视器,请按 q
或者 F9
钥匙。
目前,Linux 版 Procmon 仅包含有限的功能集。 事实上,它看起来只是进程监视器在 Windows 上所做的一小部分。 如果 Procmon 能像在 Windows 下一样完整,对 Linux 开发者会更有帮助。 有关更多详细信息,请参阅项目的 GitHub 页面。
资源:
- Procmon GitHub 存储库
相关阅读:
- 在 Linux 中使用 Bashtop 和 Bpytop 监控系统资源
- Sysmon – Linux 系统监视器(如 Windows 任务管理器)
- 使用 SysMonTask 监控 Linux 系统资源使用情况
- 您可能想知道的“顶级”命令行实用程序的一些替代方法
LinuxMicrosoftProcess MonitorProcmonSyscallSysinternals suite系统调用