🔹 Введение: Что такое процесс?
Процесс — это экземпляр выполняющейся программы. Каждая запущенная программа, системная служба или фоновое задание представляется в системе как процесс со своими:
- PID (Process ID) — уникальный идентификатор.
- Потребляемыми ресурсами (CPU, RAM, дисковый I/O).
- Правами пользователя, от которого запущен.
- Состоянием (выполняется, спит, остановлен).
Умение управлять процессами — ключевой навык для любого пользователя и администратора RedOS.
🔹 1. Мониторинг процессов: какие утилиты использовать?
1.1. ps (Process Status) — моментальный снимок
Базовая утилита для просмотра списка процессов.
Полезные команды:
ps aux # Показать ВСЕ процессы всех пользователей
ps -u username # Показать процессы конкретного пользователя
ps -e --forest # Показать дерево процессов (родитель-потомок)
ps -p 1234 -o pid,cmd,%mem # Показать информацию о конкретном процессе
Расшифровка колонок ps aux:
- USER — владелец процесса
- PID — идентификатор процесса
- %CPU — загрузка процессора
- %MEM — потребление памяти
- COMMAND — команда запуска
1.2. top и htop — интерактивный мониторинг
top — встроенный интерактивный мониторинг (есть всегда).Основные команды внутри top:
- M — сортировка по памяти
- P — сортировка по CPU
- k — завершить процесс
- q — выйти
htop — улучшенная версия (установить отдельно):
sudo dnf install htop
htop
Преимущества htop:
- Цветной интерфейс
- Вертикальное и горизонтальное разделение
- Управление мышью
- Поиск процессов (F3)
1.3. systemctl — для управления службами
Службы (services) — это фоновые процессы, управляемые системой.
systemctl status sshd # Проверить статус службы SSH
systemctl stop httpd # Остановить веб-сервер
systemctl start nginx # Запустить службу
systemctl restart firewalld # Перезапустить службу
systemctl --type=service # Показать все службы
🔹 2. Управление процессами: сигналы и приоритеты
2.1. Завершение процессов: kill и killall
Процессам отправляются сигналы. Основные:
- SIGTERM (15) — корректное завершение (по умолчанию)
- SIGKILL (9) — немедленное уничтожение
- SIGHUP (1) — перезагрузка конфигурации
Примеры:
kill 1234 # Корректно завершить процесс с PID 1234
kill -9 1234 # Немедленно убить процесс
killall -9 firefox # Убить все процессы Firefox
pkill -u username # Завершить все процессы пользователя
2.2. Управление приоритетами: nice и renice
Приоритет процесса определяется значением nice от -20 до 19.
Запуск процесса с низким приоритетом:
nice -n 19 tar -czf backup.tar.gz /large_folder
Изменение приоритета уже running процесса:
renice -n 10 -p 1234 # Понизить приоритет процесса
renice -n -5 -p 5678 # Повысить приоритет (требует root)
🔹 3. Поиск и диагностика процессов
3.1. Поиск по имени и PID
pgrep sshd # Найти PID процесса по имени
pidof chrome # Найти все PID процесса Chrome
fuser -v 22/tcp # Какой процесс использует порт 22?
lsof -p 1234 # Какие файлы открыл процесс?
3.2. Мониторинг ресурсов
iotop # Показать процессы, активно работающие с диском
iftop # Показать сетевую активность по процессам
vmstat 1 # Статистика по памяти, процессам, I/O каждую секунду
🔹 4. Фоновые и демонизированные процессы
4.1. Управление заданиями (jobs)
python3 long_script.py & # Запустить в фоне (background)
jobs # Показать фоновые задания
fg %1 # Вернуть на передний план (foreground)
bg %2 # Отправить обратно в фон
4.2. Запуск независимых процессов
nohup ./server.sh & # Запустить процесс, который не завершится
# при закрытии терминала
disown -h %1 # Отвязать процесс от текущей сессии
🔹 5. Продвинутые инструменты
/proc filesystem — детальная информация о процессах
cat /proc/1234/status # Детальная информация о процессе
ls -la /proc/1234/fd # Какие файлы открыты процессом
cat /proc/1234/environ # Переменные окружения процесса
SystemTap и perf — глубокий анализ
# Установка
sudo dnf install systemtap perf
# Пример анализа
perf top # Показать какие функции съедают CPU
stap -c 'ls' script.stp # Трассировка системных вызовов
🔹 6. KDE System Monitor
KDE System Monitor — это мощный графический инструмент для мониторинга системных ресурсов и управления процессами. Он предоставляет информацию в реальном времени о:
- Загрузке процессора (ЦП)
- Использовании оперативной памяти (Память)
- Дисковом пространстве
- Сетевой активности
- Запущенных процессах и приложениях
Это главный инструмент для быстрой диагностики проблем (например, когда система "тормозит") без необходимости использовать командную строку.
🔹 Заключение: лучшие практики
- Всегда сначала пытайтесь завершить процесс корректно (kill, systemctl stop)
- kill -9 — это последнее средство, так как процесс не может обработать этот сигнал и корректно завершить работу
- Используйте htop вместо top для наглядности
- Следите за деревом процессов — дочерние процессы могут продолжаться после завершения родителя
- Для постоянных служб используйте systemctl вместо ручного управления
Таблица: Сигналы для управления процессами
Управление процессами — это основа администрирования любой UNIX-системы, включая RedOS. Освоив эти инструменты, вы получаете полный контроль над своей системой.