Отслеживание активности системных вызовов в Linux с помощью Process Monitor (Procmon)
В течение последних нескольких лет Microsoft проделала похвальную работу на благо как Linux, так и открытого исходного кода. Они открыли исходный код многих приложений, таких как VSCode, .NET, Teams, браузер Edge и т. д. Недавним дополнением к списку стал Process Monitor. Process Monitor, сокращенно Procmon, позволяет разработчику удобно и легко отслеживать активность системных вызовов в системах Linux.
Process Monitor — это переосмысление классического инструмента Procmon для Linux из набора инструментов Sysinternals для Windows. Пакет Sysinternals состоит из нескольких инструментов для управления, диагностики, устранения неполадок и мониторинга системы Microsoft Windows. Process Monitor является частью пакета Sysinternals.
Process Monitor — это расширенный инструмент мониторинга для Windows, который показывает в реальном времени файловую систему, реестр и активность процессов/потоков. Он отслеживает файловую систему, реестр, процессы, потоки и активность DLL в режиме реального времени в операционных системах Windows.
Конечно, в Linux есть встроенная утилита командной строки под названием Strace
для отслеживания системных вызовов и сигналов. Strace — это круто, но, на мой взгляд, представления Procmon всегда были чище и приятнее.
Microsoft выпустила Procmon для Linux несколько месяцев назад. Procmon написан на C++, а его исходный код находится в свободном доступе на GitHub.
Установите Process Monitor в Linux
Убедитесь, что вы добавили репозиторий программного обеспечения Microsoft Linux в свою систему Linux. Например, выполните следующие команды, чтобы добавить репозиторий Microsoft Linux в Ubuntu 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 выполните следующую команду, чтобы установить Procmon в Ubuntu:
sudo apt install procmon
В других дистрибутивах Linux замените apt
менеджером пакетов вашего дистрибутива. Например, вы можете установить Procmon в Fedora, RHEL, используя команду:
sudo dnf install procmon
Отслеживайте активность системных вызовов в Linux с помощью Process Monitor
Чтобы отслеживать все процессы и системные вызовы в вашей системе Linux, запустите Process Monitor от имени пользователя sudo
или root
без каких-либо опций:
sudo procmon
Пример вывода:
Отслеживайте активность системных вызовов в Linux с помощью Process Monitor
Чтобы просмотреть свойства события любого процесса, просто выберите его и нажмите клавишу ВВОД.
Просмотр свойств события в Procmon
Вы можете использовать функциональные клавиши от F1 до F9 для выполнения различных задач, таких как отображение справки, процессы сортировки, поиск, фильтрация, экспорт, отображение статистики и т. д. Например, нажмите F8, чтобы отобразить 10 лучших статистических данных о системных вызовах. Чтобы выйти из Process Monitor, нажмите клавишу q
или F9
.
В настоящее время Procmon для Linux содержит лишь ограниченный набор функций. На самом деле, это похоже на часть того, что монитор процессов делает в Windows. Если бы Procmon мог быть таким же полным, как и в Windows, это было бы более полезно для разработчиков Linux. Более подробную информацию можно найти на странице проекта на GitHub.
Ресурс:
- Репозиторий Procmon на GitHub
Связанное чтение:
- Отслеживание системных ресурсов с помощью Bashtop и Bpytop в Linux
- Sysmon — системный монитор Linux (например, диспетчер задач Windows)
- Отслеживание использования системных ресурсов Linux с помощью SysMonTask
- Некоторые альтернативы утилите командной строки «top», о которых вы, возможно, захотите узнать