Поиск по сайту:

Отслеживание активности системных вызовов в 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», о которых вы, возможно, захотите узнать

Статьи по данной тематике