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