Linux обычно подключает procfs к /proc. Эта виртуальная файловая система представляет создаваемые ядром интерфейсы в виде файлов и каталогов; её содержимое не является обычными постоянными файлами на диске. Она предоставляет состояние процессов и выбранные общесистемные сведения ядра.
Процессы · Урок 10
Файловая система /proc
Узнайте, как Linux предоставляет актуальные сведения о процессах и ядре через виртуальную файловую систему /proc.
Поиск каталогов процессов
Просмотрите подключение и записи верхнего уровня:
$ findmnt /proc
$ ls /proc
Числовые имена каталогов соответствуют идентификаторам процессов, видимым в пространстве имён PID вызывающей стороны. Например, /proc/12345 представляет PID 12345 в момент его существования. /proc/self — символическая ссылка, разрешающаяся в собственный каталог наблюдающего процесса, а /proc/thread-self обозначает текущий поток.
Видимость и доступ зависят от учётных данных, пространств имён, политики безопасности и параметров подключения procfs, например hidepid. Процесс может завершиться между перечислением каталога и открытием одного из его файлов, поэтому исчезновение — нормальная гонка, которую должны обрабатывать инструменты проверки.
Что обычно представляет числовой каталог /proc/12345?
Чтение сведений о процессе
Если права разрешают, проверьте файл состояния процесса:
$ less /proc/12345/status
Он содержит такие поля, как имя и состояние процесса, идентификаторы, учётные данные, счётчики памяти, capabilities и маски сигналов. Другие полезные записи:
/proc/12345/cmdline: аргументы командной строки, разделённые нулевыми байтами/proc/12345/environ: записи окружения, защищённые доступом и потенциально конфиденциальные/proc/12345/fd/: символические ссылки, представляющие открытые файловые дескрипторы/proc/12345/maps: текущие отображения памяти/proc/12345/cwd: символическая ссылка на текущий рабочий каталог
Рассматривайте их как меняющиеся наблюдения. Поля могут зависеть от версии ядра, состояние процесса способно измениться во время чтения нескольких файлов, а у некоторых счётчиков есть тонкости, не отражённые одним именем.
Какой путь содержит читаемую сводку по полям для PID 12345?
Чтение общесистемных интерфейсов
Не каждая запись /proc относится к процессу. Примеры:
/proc/cpuinfo— сообщаемые ядром сведения о CPU/proc/meminfo— системные счётчики памяти/proc/mounts— представление подключений текущего процесса/proc/loadavg— средняя нагрузка и сведения о готовых задачах/proc/sys/— параметры ядра времени выполнения
Некоторые файлы, особенно в /proc/sys, являются записываемыми интерфейсами конфигурации. Не записывайте в них лишь потому, что они выглядят как обычные файлы. До разрешённого системного изменения разберитесь с параметром, областью действия, механизмом постоянства и откатом.
Какая запись предоставляет общесистемные счётчики памяти, а не состояние одного процесса?
Использование `/proc` через инструменты
Реализации Linux таких инструментов, как ps, top и free, получают значительную часть данных из procfs и других интерфейсов ядра, а затем подписывают, вычисляют и форматируют их. Для обычной работы предпочитайте эти инструменты, когда они предоставляют нужное поле; читайте /proc напрямую ради конкретных подробностей или скриптов только после изучения документации интерфейса.
Прямые читатели должны правильно разбирать форматы, переносить исчезновение процессов, защищать конфиденциальный вывод и не предполагать, что одно чтение является атомарным снимком системы.
Почему /proc/PID может исчезнуть между двумя командами проверки?
Урок завершён
Вы завершили Файловая система /proc
Теперь вы можете использовать procfs как живой защищённый доступом интерфейс ядра.
Связывайте числовые каталоги
/procс видимыми PID.Читайте выбранные файлы процессов с учётом гонок и конфиденциальности.
Отличайте каталоги процессов от общесистемных интерфейсов.
Предпочитайте документированные инструменты и форматы для надёжной обычной проверки.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт