Команды и утилиты, которые позволяют следить за процессами в системе, такие как ps, top и т.д. считывают информацию из каталога /proc. Этот каталог является псевдофайловой системой, в которую ядро записывает очень много интересной информации о процессах и не только.
Хотя большую часть информации проще получить с помощью команд, таких как ps или vmstat, все же иногда придется заглядывать в /proc для считывания данных. Следовательно нам надо с ним познакомиться. С рядом полезных советов и приемов можно ознакомиться с помощью команды man proc.
Итак, давайте заглянем внутрь этого каталога. Каталог /proc содержит файлы и подкаталоги. Ядро создает содержимое этих файлов и каталогов на лету, поэтому при просмотре с помощью команды ls -l, они могут показаться пустыми. Для просмотра файлов в этом каталоге пользоваться желательно командами cat и less. Но будьте аккуратны, некоторые файлы содержат двоичный код, который может ввести в ступор терминал.
Как говорилось выше, кталог /proc состоит из подкаталогов. Обратите внимание на их названия. Они соответствуют идентификатору процесса в выводе команды ps или top. Например, каталог /proc/1 всегда содержит информацию об init. Следующие файлы с информацией о процессах будут полезны:
cgroup - группа управления, которой принадлежит процесс. С помощью этого механизма происходит ограничение ресурсов, приоритет, изолирование, приостановка процессов и т.д.
cmd - Команда или программа, выполняемая процессом.
cmdline - Полная командная строка, с помощью которой был запущен процесс.
cwd - Символическая ссылка на текущий каталог процесса.
environ - Переменные среды, используемые процессом. Бывает полезно посмотреть, была ли установлена переменная окружения перед запуском программы.
exe - Символическая ссылка на исполняемый файл, который должен выполняться.
fd - Подкаталог, содержащий ссылки на дескрипторы каждого открытого файла.
fdinfo - Подкаталог, содержащий дополнительную информацию о дескрипторах каждого открытого файла.
maps - Информация отображения файла (сегменты совместного использования, библиотеки и т.п.). Полезен при определении библиотек, с которыми связана или от которых зависит та или иная программа.
ns - Подкаталог, содержащий ссылку на пространство имен каждого открытого файла.
root - символическая ссылка на корневой каталог процесса.
stat - Информация об общем состоянии процесса.
statm - Информация об использовании памяти.
Пожалуй, для этой статьи, достаточно информации к размышлению. Советую потратить немного времени и поизучать этот псевдокаталог, благодаря ему вы сможете довольно тонко настроить свою систему, а так же получать информацию о системе с помощью обычной команды cat. Еще более подробнее коснемся этой темы в будущем, пока только основы, поэтому подписывайтесь, чтобы не пропустить. Если возникнут вопросы, спрашивайте в комментариях, постараюсь помочь.