Подробный гайд: Как завершить процесс через командную строку в Astra Linux
- Astra Linux (как Common Edition, так и Special Edition) основана на Debian и использует стандартное ядро Linux. Поэтому управление процессами полностью соответствует общепринятым POSIX-стандартам. Ниже приведён пошаговый алгоритм, разбор команд, особенности безопасности и рекомендации для Astra Linux.
Шаг 1. Поиск нужного процесса
Прежде чем завершать процесс, необходимо точно знать его PID (Process ID) и убедиться, что это действительно тот процесс, который нужно остановить.
1.1 Через ps и grep
ps aux | grep имя_процесса
Пример:
ps aux | grep firefox
Вывод:
user 12345 2.1 1.4 1234567 89012 ? Sl 10:15 0:05 /usr/lib/firefox/firefox
12345 — это PID.
1.2 Через pgrep (рекомендуется для скриптов)
pgrep -a имя_процесса
Ключ -a выводит полный путь к исполняемому файлу. Удобно для точного сопоставления.
1.3 Через интерактивные мониторы
top # нажмите `k`, введите PID, выберите сигнал
htop # выделите процесс, нажмите `F9`, выберите сигнал
htop обычно предустановлен в Astra Linux CE. В Special Edition может потребоваться установка из репозитория.
Шаг 2. Понимание сигналов завершения
Команда kill не «убивает» процесс напрямую, а отправляет ему сигнал. Процесс может перехватить сигнал и корректно завершиться.
| Сигнал | Номер | Поведение |
|---|---|---|
SIGTERM |
15 | Вежливый запрос на завершение. Процесс может сохранить данные и освободить ресурсы. Используется по умолчанию. |
SIGKILL |
9 | Принудительное завершение ядром. Процесс не может перехватить или проигнорировать. Риск потери данных. |
SIGHUP |
1 | Перечитать конфигурацию (часто используется для демонов). |
SIGSTOP |
19 | Приостановить выполнение (не завершает). |
SIGCONT |
18 | Возобновить выполнение после SIGSTOP. |
Рекомендация:
- всегда начинайте с
SIGTERM(по умолчанию).SIGKILL(-9) применяйте только в крайних случаях.
Шаг 3. Завершение процесса
3.1 Стандартное завершение
kill 12345
# или явно:
kill -15 12345
3.2 Принудительное завершение
kill -9 12345
# или
kill -KILL 12345
3.3 Проверка результата
ps -p 12345 -o pid,stat,comm
Если процесс завершён, команда ничего не выведет. Если остался статус Z (zombie) или D (uninterruptible sleep), см. раздел устранения неполадок ниже.
Альтернативные команды
| Команда | Описание | Пример |
|---|---|---|
pkill |
Завершает процессы по имени или паттерну (поддерживает регулярные выражения) | pkill -f "python app.py" |
killall |
Завершает все процессы с точным именем. В Linux чувствителен к регистру! | killall nginx |
kill -STOP |
Приостанавливает процесс | kill -STOP 12345 |
kill -CONT |
Возобновляет процесс | kill -CONT 12345 |
Примечание:
killall -rв Astra/Debian может работать нестабильно. Для сложных паттернов используйтеpkill -f.
Особенности Astra Linux
1. Мандатный контроль доступа (Parsec/Mandac)
- В Astra Linux Special Edition включён расширенный механизм безопасности. Даже от
rootили черезsudoвы можете получить ошибку "Operation not permitted", если процесс принадлежит другому уровню конфиденциальности или категории.
Решение:
- проверьте мандатный контекст через
ps -Z <PID>или обратитесь к администратору безопасности для корректировки политик.
2. Системные службы
Если процесс управляется systemd (например, apache2, postfix, astral-agent), правильнее использовать:
sudo systemctl stop имя_службы
sudo systemctl restart имя_службы
Это гарантирует корректное завершение зависимостей и перезапуск.
3. Проверка прав
Для процессов других пользователей или системных демонов используйте sudo:
sudo kill 12345
Рекомендуемый алгоритм действий
- Найдите PID:
pgrep -a имяилиps aux | grep имя - Убедитесь, что это нужный процесс (путь, пользователь, CPU/MEM)
- Отправьте мягкий сигнал:
kill PID - Подождите 3–5 секунд. Проверьте:
ps -p PID - Если процесс «завис»:
kill -9 PID - Для служб:
sudo systemctl stop имя_службы
Важные предупреждения
- Никогда не отправляйте
kill -9процессамinit,systemd,kthreadd,kworker*— это приведёт к панике ядра или потере данных. - Процессы в состоянии
Z(zombie) нельзя убить. Они исчезнут после завершения родительского процесса или вызоваwait(). kill -9не вызывает обработчики завершения, не сохраняет кэш, не закрывает файлы корректно.- Всегда проверяйте PID перед вводом. Случайное завершение
sshdилиnetwork-managerможет заблокировать доступ к системе.
Шпаргалка (Cheat Sheet)
| Задача | Команда |
|---|---|
| Найти PID | pgrep -a имя / ps aux | grep имя |
| Мягкое завершение | kill PID |
| Принудительное завершение | kill -9 PID |
| Завершить по имени | killall имя |
| Завершить по паттерну | pkill -f "часть_команды" |
| Проверить, жив ли процесс | ps -p PID |
| Перезапустить службу | sudo systemctl restart имя_службы |
| Посмотреть все доступные сигналы | kill -l |