Проверка ограничений процесса с помощью команды cat /proc/self/limits
На предыдущих этапах вы узнали о команде ulimit
для просмотра текущих ограничений сессии и о файле /etc/security/limits.conf
для системной конфигурации. Теперь давайте посмотрим, как запущенный процесс сообщает о своих собственных ограничениях.
Linux предоставляет виртуальную файловую систему /proc
, которая содержит информацию о запущенных процессах и системе ядра. Каждый запущенный процесс имеет каталог в /proc
, названный по его идентификатору процесса (Process ID, PID).
Специальный каталог /proc/self
представляет собой символическую ссылку, которая указывает на каталог /proc
процесса, который к нему обращается. Таким образом, когда вы находитесь в терминале и обращаетесь к /proc/self
, вы смотрите на информацию о текущем процессе оболочки (shell).
Внутри каталога /proc/self
есть файл с именем limits
, который содержит ограничения ресурсов для этого конкретного процесса.
Давайте посмотрим на ограничения для текущего процесса оболочки с помощью команды cat
:
cat /proc/self/limits
Нажмите Enter.
Вы увидите вывод, похожий на следующий:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes unlimited unlimited processes
Max open files 1048576 1048576 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals <placeholder> <placeholder> signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Этот вывод показывает Soft Limit
(мягкое ограничение) и Hard Limit
(жесткое ограничение) для каждого ресурса, аналогично тому, что вы видели с помощью команды ulimit -a
. Здесь значения отражают фактические ограничения, применяемые к процессу, который выполнил команду cat
(ваша оболочка).
Сравните вывод команды cat /proc/self/limits
с выводом команды ulimit -a
из первого шага. Вы должны увидеть, что значения совпадают, так как команда ulimit -a
сообщает о ограничениях текущего процесса оболочки.
Файловая система /proc
представляет собой мощный инструмент для изучения состояния вашей Linux-системы и ее процессов. Файл limits
в каталоге каждого процесса предоставляет прямой способ проверить ограничения ресурсов, действующие для этого конкретного процесса.
Теперь вы узнали три разных способа взаимодействия с ограничениями ресурсов в Linux: просмотр текущих ограничений сессии с помощью команды ulimit -a
, изучение системной конфигурации в файле /etc/security/limits.conf
и проверка ограничений для конкретного процесса через /proc/<PID>/limits
(или /proc/self/limits
).
Нажмите Продолжить, чтобы завершить это практическое занятие (лабораторную работу).