файловая система proc в Linux
Файловая система Proc (procfs) - это виртуальная файловая система, которая создается «на лету» при загрузке системы и распадается при ее завершении.
Он содержит полезную информацию о процессах, которые в настоящее время запущены, он рассматривается как центр управления и информации для ядра.
Файловая система proc также обеспечивает среду связи между пространством ядра и пространством пользователя.
Ниже приведен снимок / proc с моего ПК.
ls -l / proc всего 0 dr-xr-xr-x 9 root root 0 31 марта 21:34 1 dr-xr-xr-x 9 root root 0 31 мар 21:34 10 dr-xr-xr-x 9 авахи авахи 0 31 марта 21:34 1034 dr-xr-xr-x 9 root root 0 31 марта 21:34 1036 dr-xr-xr-x 9 root root 0 31 марта 21:34 1039 dr-xr-xr-x 9 root root 0 31 марта 21:34 1041 dr-xr-xr-x 9 root root 0 31 марта 21:34 1043 dr-xr-xr-x 9 root root 0 31 марта 21:34 1044 dr-xr-xr-x 9 root root 0 31 марта 21:34 1048 dr-xr-xr-x 9 root root 0 31 марта 21:34 105 dr-xr-xr-x 9 root root 0 31 марта 21:34 1078 dr-xr-xr-x 9 root root 0 31 марта 21:34 11 dr-xr-xr-x 9 root root 0 31 марта 21:34 1121 dr-xr-xr-x 9 lp lp 0 31 марта 21:34 1146 dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1149 dr-xr-xr-x 9 mysql mysql 0 31 марта 21:34 1169 dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1180 dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1181 dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1182 dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1183 dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1184 dr-xr-xr-x 9 root root 0 31 марта 21:34 1186 dr-xr-xr-x 9 root root 0 31 марта 21:34 12 ...
Если вы перечислите каталоги, вы обнаружите, что для каждого PID процесса есть специальный каталог.
Вы можете проверять каталоги только на терминале, используя
ls -l /proc | grep "^d"
Теперь давайте проверим конкретный процесс с назначенным PID, вы можете получить PID любого запущенного процесса с помощью команды ps
ps -aux
Выход:
ps -aux вывод команды
Теперь проверьте выделенный процесс с PID = 7494, вы можете проверить, есть ли запись для этого процесса в файловой системе / proc.
ls -ltr / proc / 7494
Выход:
всего 0 -rw-r - r-- 1 mandeep mandeep 0 1 апр 01:14 oom_score_adj dr-xr-xr-x 13 mandeep mandeep 0 апр 1 01:14 задача -r - r - r-- 1 mandeep mandeep 0 1 апр 01:16 статус -r - r - r-- 1 mandeep mandeep 0 1 апр 01:16 stat -r - r - r-- 1 mandeep mandeep 0 1 апр 01:16 cmdline -r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 ччан -rw-r - r-- 1 mandeep mandeep 0 1 апр 01:17 uid_map -rw-rw-rw- 1 mandeep mandeep 0 1 апр 01:17 timerslack_ns -r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 таймеры -r -------- 1 mandeep mandeep 0 1 апр 01:17 системный вызов -r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 statm -r -------- 1 mandeep mandeep 0 1 апр 01:17 стек -r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 smaps -rw-r - r-- 1 mandeep mandeep 0 1 апр 01:17 setgroups -r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 sessionid -r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 schedstat -rw-r - r-- 1 mandeep mandeep 0 1 апр 01:17 расписание lrwxrwxrwx 1 mandeep mandeep 0 апр 1 01:17 корень -> / proc / 2341 / fdinfo -rw-r - r-- 1 mandeep mandeep 0 1 апр 01:17 projid_map -r -------- 1 mandeep mandeep 0 1 апр 01:17 личность ...
В linux / proc включает каталог для каждого запущенного процесса, включая процессы ядра, в каталогах с именем / proc / PID, это присутствующие каталоги:
каталог | описание |
---|---|
/ proc / PID / cmdline | Аргументы командной строки. |
/ proc / PID / cpu | Текущий и последний процессор, в котором он был выполнен. |
/ proc / PID / cwd | Ссылка на текущий рабочий каталог. |
/ proc / PID / окружающая среда | Значения переменных окружения. |
/ proc / PID / exe | Ссылка на исполняемый файл этого процесса. |
/ proc / PID / fd | Каталог, содержащий все файловые дескрипторы. |
/ proc / PID / maps | Карты памяти для исполняемых файлов и файлов библиотеки. |
/ proc / PID / mem | Память, удерживаемая этим процессом. |
/ proc / PID / корень | Ссылка на корневой каталог этого процесса. |
/ proc / PID / stat | Статус процесса. |
/ proc / PID / statm | Информация о состоянии памяти процесса. |
/ proc / PID / статус | Статус процесса в удобочитаемой форме. |
Некоторые другие файлы в файловой системе / proc:
файл | описание |
---|---|
/ proc / крипто | список доступных криптографических модулей |
/ proc / diskstats | информация (включая номера устройств) для каждого из логических дисковых устройств |
/ proc / файловые системы | список файловых систем, поддерживаемых ядром на момент листинга |
/ proc / kmsg | удерживание сообщений, выводимых ядром |
/ proc / meminfo | краткое изложение того, как ядро управляет своей памятью. |
/ proc / scsi | информация о любых устройствах, подключенных через SCSI или RAID-контроллер |
/ proc / tty | информация о текущих терминалах |
/ proc / версия | содержащий версию ядра Linux, номер дистрибутива, номер версии gcc (используемый для сборки ядра) и любую другую соответствующую информацию, относящуюся к версии ядра, работающей в данный момент. |
Например, содержимое / proc / crypto
меньше / proc / crypto имя: ccm (aes) драйвер: ccm_base (ctr (aes-aesni), cbcmac (aes-aesni)) модуль: ccm приоритет: 300 ссылка: 2 самотестирование: пройдено внутренний: нет тип: aead асинхронный: нет размер блока: 1 ivsize: 16 максимальный размер: 16 генив: имя: ctr (aes) водитель: ctr (aes-aesni) модуль: ядро приоритет: 300 ссылка: 3 самотестирование: пройдено внутренний: нет тип: blkcipher размер блока: 1 Мин. размер ключа: 16 максимальный размер ключей: 32 ivsize: 16 geniv: chainiv ...
Использованная литература :
1) / wiki / Procfs
2) / proc