Гид по технологиям

Файловая система /proc в Linux: обзор и практическое руководство

4 min read Linux Обновлено 11 Dec 2025
Linux /proc — что это и как пользоваться
Linux /proc — что это и как пользоваться

Кратко

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

Стеллаж с виниловыми пластинками

Если вы заглянули в корневой каталог Linux, возможно, заметили каталог /proc с множеством чисел (PID) и других файлов. Что это за каталог и зачем он нужен? На практике /proc содержит много полезной информации о системе и запущенных процессах — это интерфейс ядра в виде «файлов». В этой статье подробно разбираем устройство procfs и даём практические приёмы по получению системной информации.

Что такое файловая система proc (procfs)

procfs — идея, частично заимствованная из исследовательской системы Plan 9 (Bell Labs). Концепция опирается на принцип «всё — файл», доведённый до логического конца: все запущенные процессы и множество параметров ядра отображаются как иерархия файлов.

Список файлов в /proc в Linux

Процедурные особенности:

  • /proc — виртуальная файловая система. Файлы не хранятся на диске; они генерируются по запросу ядром.
  • Большинство файлов читаются как обычный текст; некоторые — двоичные или содержат NUL-символы (например, environ).
  • Полезно для скриптов: стандартные текстовые утилиты (cat, grep, awk, sed) применимы.

Полезные файлы в корне /proc

Некоторые файлы и каталоги в /proc, которые стоит знать:

  • /proc/cpuinfo — сведения о процессоре (ядрах, моделях, кешах).
  • /proc/meminfo — состояние оперативной памяти и кешей.
  • /proc/mounts — список смонтированных файловых систем.
  • /proc/uptime — время работы системы (в секундах).
  • /proc/partitions — таблица разделов (логическое представление).
  • /proc/sys — интерфейс параметров sysctl (доступ для чтения/записи).

Чтобы посмотреть cpuinfo, используйте:

cat /proc/cpuinfo

Если информации много, удобнее просматривать через постраничный просмотрщик (less, most):

less /proc/cpuinfo

Информация о процессе: каталоги по PID

В /proc каждый запущенный процесс имеет собственный каталог с именем, равным его PID, например /proc/1 для init/systemd.

Файл состояния процесса

Внутри каталога процесса часто встречаются:

  • exe — символическая ссылка на исполняемый файл процесса. Прочитать реальный путь можно так:
readlink -f /proc//exe
  • cmdline — аргументы командной строки процесса. Аргументы разделены NUL-байтами, поэтому для удобства можно заменить их на пробелы:
tr '\0' ' ' < /proc//cmdline; echo
  • environ — переменные окружения (также NUL-разделённые).
  • status — человеко-читаемый набор полей: State, Pid, PPid, VmSize, VmRSS и др.
  • fd/ — каталог с дескрипторами файлов (символьные ссылки на открытые файлы, сокеты, каналы).

Пример извлечения RSS (физической памяти) процесса:

grep -i VmRSS /proc//status

Или быстрый список открытых файлов процесса:

ls -l /proc//fd

Команды и приёмы для повседневного использования

Несколько практических приёмов для администратора и разработчика:

  • Быстрый обзор памяти и CPU:
cat /proc/meminfo | head -n 10
cat /proc/cpuinfo | grep 'model name' -m1
  • Найти процессы, открывшие конкретный файл:
lsof /path/to/file   # если lsof установлен
# или через /proc (поиск по дескрипторам, дольше):
for pid in $(ls /proc | grep -E '^[0-9]+$'); do
  ls -l /proc/$pid/fd 2>/dev/null | grep -q '/path/to/file' && echo $pid
done
  • Проверить параметры ядра и изменить их (пример — включить форвардинг IPv4):
cat /proc/sys/net/ipv4/ip_forward
# временно включить:
echo 1 > /proc/sys/net/ipv4/ip_forward
# рекомендация для перманентных изменений — /etc/sysctl.conf или /etc/sysctl.d/

Когда /proc может вести себя иначе или быть ограниченным

Важно знать ограничения и редкие случаи:

  • /proc — виртуальная файловая система: чтение генерирует текущее состояние, а не статический снимок.
  • Некоторые файлы доступны только root; обычный пользователь видит ограничения или пустые значения.
  • В контейнерах и при использовании опций монтирования (например, hidepid) представление PID и доступ к /proc могут быть ограничены.
  • На ряде специализированных дистрибутивов или режимов ядро может не монтировать procfs по умолчанию; его можно смонтировать вручную: mount -t proc proc /proc.

Мини‑плейбук: расследование высокой нагрузки CPU

  1. Найдите подозрительные процессы:
ps -eo pid,comm,%cpu --sort=-%cpu | head -n 15
  1. Для каждого подозрительного PID изучите /proc:
cat /proc//status
readlink -f /proc//exe
tr '\0' ' ' < /proc//cmdline; echo
ls -l /proc//fd
  1. Если процесс «зависает», посмотрите стек (если доступно) с помощью gdb или /proc//stack (только для отладки ядра/системных служб).

  2. При необходимости ограничьте ресурс (cgroups) или перезапустите службу через systemd.

Чек‑лист для ролей

  • Системный администратор:

    • Проверить /proc/mounts и /proc/sys для неожиданных настроек.
    • Использовать /proc/meminfo и /proc/vmstat при анализе OOM/утечек памяти.
  • Разработчик приложений:

    • Для диагностики ошибок смотреть cmdline, environ, fd и exe процесса.
    • Помнить про NUL-разделённые файлы (cmdline, environ).
  • SRE/операции:

    • Автоматизировать проверку через скрипты, парся /proc.
    • Проверять hidepid и права доступа в контейнерах.

Быстрая шпаргалка (cheat sheet)

  • Просмотр CPU: cat /proc/cpuinfo
  • Просмотр памяти: cat /proc/meminfo
  • Список монтированных FS: cat /proc/mounts
  • Информация о процессе: cat /proc//status
  • Путь к исполняемому файлу процесса: readlink -f /proc//exe

Краткое резюме

/proc — мощный и гибкий механизм получения информации о текущем состоянии ядра и процессов в Linux. Это интерфейс в виде «файлов», пригодный для интерактивной диагностики и автоматизации. Помните об особенностях доступа (права, контейнеры, hidepid) и используйте стандартные утилиты для удобного чтения.

Важное: не пытайтесь редактировать произвольные файлы в /proc без понимания последствий; корректное изменение настроек ядра следует выполнять через sysctl или системные конфигурационные файлы.

1‑строчный словарь

  • procfs — виртуальная файловая система, предоставляющая интерфейс ядра в виде файлов.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как перезапустить Outlook на Windows
Поддержка ПО

Как перезапустить Outlook на Windows

Настройка iMessage и Сообщений на Mac
macOS

Настройка iMessage и Сообщений на Mac

Как очистить Mac и безопасно освободить место
macOS

Как очистить Mac и безопасно освободить место

Google Photos в Windows 10 — установка и руководство
Приложения

Google Photos в Windows 10 — установка и руководство

Как скрыть приложения в OxygenOS 12 и новее
Android.

Как скрыть приложения в OxygenOS 12 и новее

Ошибка добавления способа оплаты в Oculus — исправление
Техподдержка

Ошибка добавления способа оплаты в Oculus — исправление