Файловая система /proc
100%

Процессы · Урок 10

Файловая система /proc

Узнайте, как Linux предоставляет актуальные сведения о процессах и ядре через виртуальную файловую систему /proc.

Linux обычно подключает procfs к /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.

  • Читайте выбранные файлы процессов с учётом гонок и конфиденциальности.

  • Отличайте каталоги процессов от общесистемных интерфейсов.

  • Предпочитайте документированные инструменты и форматы для надёжной обычной проверки.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Процессы