Основное место хранения информации о процессах - виртуальная файловая система /proc
, которая:
/proc/
├── <PID>/ # Директория каждого процесса
├── cpuinfo # Информация о CPU
├── meminfo # Информация о памяти
└── ...
/proc/<PID>/status # Основная информация о процессе
/proc/<PID>/stat # Детальная статистика (для машинного чтения)
/proc/<PID>/cmdline # Полная командная строка запуска
/proc/<PID>/statm # Использование памяти
/proc/<PID>/io # Статистика ввода-вывода
/proc/<PID>/fd/ # Открытые файловые дескрипторы
/proc/<PID>/task/ # Директории всех потоков процесса
/proc/<PID>/task/<TID>/status # Статус конкретного потока
/proc/<PID>/net/ # Сетевая статистика процесса
/proc/<PID>/fd/ # Сетевые сокеты среди файловых дескрипторов
ps aux # Читает /proc для вывода информации
top # Интерактивный мониторинг процессов
htop # Улучшенная версия top
cat /proc/<PID>/environ # Переменные окружения процесса
ls -l /proc/<PID>/fd # Список открытых файлов
lsof -p <PID> # Все открытые файлы процесса
pmap <PID> # Карта памяти процесса
pidstat 1 # Статистика в реальном времени
Динамическое обновление:
Формат данных:
status
, io
)stat
, statm
)Безопасность:
ls -l /proc/*/fd/ 2>/dev/null | grep socket
cat /proc/<PID>/status | grep -E 'VmRSS|VmSize'
tr '\0' '\n' < /proc/<PID>/environ
Системные вызовы:
getrusage()
sysinfo()
Файлы устройств:
/dev/mem
(прямой доступ к памяти)/dev/kmem
(доступ к памяти ядра)Отладочные интерфейсы:
strace
- трассировка системных вызововgdb
- отладка процессовОсновное хранилище:
/proc
<PID>/
Ключевая информация:
/proc/<PID>/status
, /proc/<PID>/stat
/proc/<PID>/statm
, /proc/<PID>/io
/proc/<PID>/task/
Практическое применение:
Инструменты:
/proc
для глубокого анализаps
, top
) для повседневного использованияПонимание организации хранения информации о процессах критически важно для эффективной работы в Linux и диагностики сложных проблем.