Иногда нужно быстро понять, какой именно процесс запущен под конкретным PID. В этой статье разберём, как это сделать — но сначала пару слов о том, как вообще работают процессы в Linux. Когда вы или система запускаете какую-то программу, ядро Linux создаёт для неё отдельный процесс. В нём хранятся все данные о работе программы: переменные, ввод-вывод, состояние и прочее.
Так как Linux — многозадачная система, он запускает сразу несколько процессов. Чтобы не возникло путаницы, каждый из них получает уникальный номер — PID. Без этого невозможно было бы корректно управлять запущенными задачами.
Данные о процессах хранятся в /proc. Там для каждого процесса есть своя папка с его номером.
Можно использовать простую команду ls, чтобы заглянуть в /proc:
ls /proc
Если список слишком длинный — удобно добавить less:
ls /proc | less
Цифровые папки — это и есть процессы. Названия этих папок — PID-номера.
Например, у процесса systemd, с которого стартует система, всегда PID 1. Чтобы посмотреть, что находится в его папке:
ls /proc/1
Следить за тем, какие процессы сейчас работают, и какие у них PID, можно с помощью стандартных команд:
→ ps aux — покажет список всех процессов с их PID.
→ top — откроет интерактивное окно со всеми активными процессами, обновляется в реальном времени.
→ glances — современный инструмент, показывает загрузку процессора, памяти, дисков и прочее.
Если вы знаете название программы, можно узнать её PID с помощью команды pidof:
pidof firefox
pidof python
pidof cinnamon
Теперь самое интересное — допустим, у вас уже есть PID, и вы хотите понять, что это за процесс. Используйте команду:
ps -p PID -o comm=
Примеры:
ps -p 2523 -o comm=
ps -p 2295 -o comm=
Здесь:
→ -p — указывает нужный PID,
→ -o comm= — формат вывода, где comm означает имя команды (оно же имя процесса).
Если хотите подробнее разобраться в возможностях ps, посмотрите его справку:
man ps