Каждая программа в Linux запускается как процесс. Эта шпаргалка содержит все команды для мониторинга, управления и контроля процессов в системе.
МОНИТОРИНГ ПРОЦЕССОВ
Команда ps (текущие процессы):
| Команда | Описание | Полезные опции |
|---|---|---|
ps aux |
Все процессы всех пользователей | a (все), u (пользователь), x (без терминала) |
ps -ef |
Все процессы в полном формате | -e (все), -f (полный формат) |
ps -u user |
Процессы конкретного пользователя | -u username |
ps -p PID |
Конкретный процесс по PID | -p 1234 |
ps -C имя |
Процессы по имени команды | -C nginx |
ps -o pid,comm,%cpu,%mem |
Пользовательский формат вывода | -o (вывод своих колонок) |
ps --forest |
Дерево процессов (иерархия) | --forest или -H |
ps -L -p PID |
Потоки (threads) процесса | -L (потоки) |
Самые полезные форматы:
| ps aux —sort=-%mem | head -10 # Топ-10 по памяти ps aux —sort=-%cpu | head -10 # Топ-10 по CPU ps -eo pid,ppid,cmd,%mem,%cpu —sort=-%mem | head -20 # Детально |
Команды top и htop (интерактивный мониторинг):
| Команда | Описание | Горячие клавиши в top |
|---|---|---|
top |
Интерактивный мониторинг | M (по памяти), P (по CPU), k (убить), q (выход) |
htop |
Улучшенный top (требует установки) | F2 (настройка), F9 (сигналы), F10 (выход) |
top -u user |
Только процессы пользователя | |
top -p PID1,PID2 |
Конкретные процессы | |
top -d 2 |
Обновление каждые 2 секунды | |
top -b -n 1 > файл.txt |
Однократный вывод в файл |
Установка htop:
|
# Ubuntu/Debian # RHEL/CentOS # Arch |
УПРАВЛЕНИЕ ПРОЦЕССАМИ
Запуск процессов:
| Команда | Описание | Пример |
|---|---|---|
команда & |
Запуск в фоне | python3 script.py & |
nohup команда & |
Запуск в фоне с игнорированием SIGHUP | nohup ./server & |
setsid команда |
Запуск в новой сессии | setsid long_running.sh |
screen |
Виртуальные терминалы | screen -S session_name |
tmux |
Современная замена screen | tmux new -s session |
Управление фоновыми задачами (jobs):
| Команда | Описание |
|---|---|
jobs |
Показать фоновые задачи текущей сессии |
fg %N |
Вернуть задачу на передний план |
bg %N |
Отправить задачу в фон |
Ctrl+Z |
Приостановить текущую задачу |
disown |
Открепить задачу от терминала |
Пример работы с jobs:
| python3 server.py # Запуск Ctrl+Z # Приостановить jobs # [1]+ Stopped python3 server.py bg %1 # Отправить в фон disown %1 # Открепить от терминала |
СИГНАЛЫ ПРОЦЕССАМ (КОМАНДА KILL)
Основные сигналы:
| Сигнал | Номер | Описание | Когда использовать |
|---|---|---|---|
SIGHUP |
1 | Hangup (перезагрузить конфиг) | Демоны (nginx, apache) |
SIGINT |
2 | Interrupt (Ctrl+C) | Интерактивные программы |
SIGQUIT |
3 | Quit (создать core dump) | Отладка |
SIGKILL |
9 | Kill (немедленное завершение) | Не отвечает на другие сигналы |
SIGTERM |
15 | Terminate (мягкое завершение) | По умолчанию для kill |
SIGSTOP |
17,19,23 | Stop (приостановка) | Ctrl+Z |
SIGCONT |
18,25 | Continue (продолжить) | После SIGSTOP |
SIGTSTP |
20 | Terminal Stop (Ctrl+Z) | Интерактивная остановка |
Команда kill и аналоги:
| Команда | Описание | Пример |
|---|---|---|
kill PID |
Отправить SIGTERM (15) | kill 1234 |
kill -9 PID |
Отправить SIGKILL (9) | kill -9 1234 |
kill -HUP PID |
Отправить SIGHUP (1) | kill -HUP 5678 |
kill -STOP PID |
Приостановить процесс | kill -STOP 1234 |
kill -CONT PID |
Продолжить процесс | kill -CONT 1234 |
killall имя |
Убить все процессы с именем | killall nginx |
pkill шаблон |
Убить по шаблону имени | pkill python |
pkill -u user |
Убить все процессы пользователя | pkill -u alex |
kill %N |
Убить фоновую задачу | kill %1 |
ДОПОЛНИТЕЛЬНЫЕ УТИЛИТЫ МОНИТОРИНГА
Команда pidof и pgrep:
| Команда | Описание |
|---|---|
pidof имя |
Найти PID процесса по имени |
pgrep имя |
Найти PID с фильтрацией |
pgrep -l шаблон |
Список с именами |
pgrep -f шаблон |
По полной командной строке |
Утилиты для анализа ресурсов:
| Команда | Описание |
|---|---|
pstree |
Дерево процессов |
lsof |
Открытые файлы процессами |
fuser |
Какие процессы используют файл/порт |
vmstat |
Статистика виртуальной памяти |
mpstat |
Статистика CPU |
iostat |
Статистика ввода/вывода |
sar |
Системная статистика |
ПРИОРИТЕТЫ ПРОЦЕССОВ (NICE И RENICE)
| Команда | Описание | Диапазон |
|---|---|---|
nice -n значение команда |
Запуск с указанным nice | -20 (высший) до 19 (низший) |
renice значение -p PID |
Изменить nice запущенного процесса | |
renice значение -u user |
Изменить nice всех процессов пользователя | |
chrt -p PID |
Показать политику планировщика и приоритет |
Примеры:
| nice -n 10 ./script.sh # Запустить с низким приоритетом nice -n -10 ./critical.sh # Запустить с высоким приоритетом (требует root) renice 5 -p 1234 # Изменить приоритет процесса 1234 renice -5 -u www-data # Повысить приоритет всех процессов пользователя www-data |
СИСТЕМНЫЕ ЛИМИТЫ И РЕСУРСЫ
Команда ulimit:
| Команда | Описание |
|---|---|
ulimit -a |
Показать все лимиты текущей оболочки |
ulimit -n |
Максимальное число открытых файлов |
ulimit -u |
Максимальное число процессов |
ulimit -c |
Максимальный размер core файлов |
ulimit -n 4096 |
Установить лимит открытых файлов |
Файлы лимитов системы:
-
/etc/security/limits.conf— глобальные лимиты пользователей -
/proc/sys/kernel/pid_max— максимальный PID (максимум процессов) -
/proc/PID/limits— лимиты конкретного процесса
ПРОДВИНУТЫЙ МОНИТОРИНГ
Информация о конкретном процессе:
| Путь в /proc | Информация |
|---|---|
/proc/PID/status |
Общая информация о процессе |
/proc/PID/stat |
Статистика в машинном формате |
/proc/PID/statm |
Использование памяти |
/proc/PID/io |
Статистика ввода/вывода |
/proc/PID/fd/ |
Открытые файловые дескрипторы |
/proc/PID/environ |
Переменные окружения |
/proc/PID/cmdline |
Командная строка запуска |
/proc/PID/cwd |
Ссылка на рабочую директорию |
/proc/PID/exe |
Ссылка на исполняемый файл |
Примеры:
| cat /proc/1234/status # Информация о процессе ls -la /proc/1234/fd/ # Открытые файлы cat /proc/1234/cmdline | tr ‘\0’ ‘ ‘ # Командная строка |
БЫСТРАЯ ДИАГНОСТИКА ПРОБЛЕМ С ПРОЦЕССАМИ
|
# 1. Найти процессы, потребляющие много CPU # 2. Найти процессы, потребляющие много памяти # 3. Найти зависшие процессы # 4. Проверить процессы пользователя # 5. Найти процесс по используемому порту # 6. Убить все процессы программы # 7. Мониторинг в реальном времени # 8. Анализ дерева процессов # 9. Проверить лимиты процесса # 10. Найти утечки памяти |
ПОЛЕЗНЫЕ ОДНОСТРОЧНИКИ ДЛЯ АДМИНИСТРИРОВАНИЯ
|
# Перезапустить все процессы пользователя (кроме текущей оболочки) # Найти и убить процессы старше 1 дня # Мониторинг процессов в реальном времени с записью в лог # Автоматическое завершение процессов при превышении лимита памяти # Показать 10 процессов с наибольшим количеством потоков |
Дата последнего обновления: 12/05/2025.
