← Назад к вопросам

Какая команда убирает все процессы в Linux?

1.3 Junior🔥 51 комментариев
#Другое#Инструменты тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Команды для завершения процессов в Linux

Прямого аналога команде "убрать все процессы" не существует по соображениям безопасности системы, но есть несколько мощных команд для принудительного завершения множества или всех процессов. Ключевой принцип — нужны права суперпользователя (root).

Основные команды

1. Команда killall — завершение процессов по имени

Завершает все процессы с указанным именем.

sudo killall -9 process_name
  • -9 (SIGKILL) — немедленное, безоговорочное завершение (сигнал нельзя перехватить или проигнорировать).
  • Пример: sudo killall -9 firefox завершит все процессы Firefox.

2. Команда pkill — завершение по шаблону имени

Более мощный аналог killall, поддерживает регулярные выражения.

sudo pkill -9 -f "pattern"
  • -f — поиск по полной командной строке, а не только по имени процесса.
  • Пример: sudo pkill -f "python3 script.py" завершит все процессы, в командной строке которых есть эта строка.

3. Команда kill с особыми сигналами

Классическая команда работает с PID (Process ID). Чтобы завершить все процессы, кроме системных, можно использовать специальные идентификаторы.

sudo kill -9 -1
  • -1 в качестве PID означает "все процессы, которые может завершить текущий пользователь". С sudo это практически все процессы в системе, что очень опасно.

ОПАСНЫЕ команды, которые "убирают почти всё"

Следующие команды эквивалентны "выключению питания" для рабочей сессии и приведут к немедленной потере всех несохраненных данных, перезагрузке или выходу в консоль.

4. skill -KILL -t pts/X или pkill -KILL -t pts/X

Завершает все процессы, связанные с указанным терминалом (TTY или PTS). Полезно для "отстрела" зависшей сессии пользователя.

# Завершить все процессы в терминале pts/1
sudo pkill -9 -t pts/1

5. Наиболее радикальные варианты (ЧРЕЗВЫЧАЙНО ОПАСНО)

Эти команды эквивалентны аварийной перезагрузке:

  • Магическая SysRq комбинация: echo b > /proc/sysrq-triggerнемедленная перезагрузка без синхронизации дисков.
  • Команда reboot -f (--force) — принудительная перезагрузка.
  • Сигнал SIGKILL всем процессам, включая init (PID 1):
    sudo kill -9 -1  # Сначала попытается завершить все
    # А это "добьёт" систему:
    sudo kill -9 1   # Завершает процесс init (systemd), что приводит к краху
    

Практический и безопасный подход

Вместо тотального завершения всех процессов, всегда старайтесь действовать точечно. Вот безопасный workflow:

  1. Найдите целевые процессы с помощью ps, top или pgrep:

    ps aux | grep -i "часть_имени"
    pgrep -l -u username  # Список процессов пользователя
    
  2. Завершите процессы выборочно:

    *   По PID: `kill -9 1234 5678`
    *   По имени для текущего пользователя: `killall -9 chrome`
    *   Все процессы конкретного пользователя: `sudo pkill -9 -U username`

  1. В критических случаях (зависший графический сеанс, невозможность войти) можно завершить все процессы своего пользователя (из-под root):
    sudo pkill -9 -u your_username
    

Вывод

Одной универсальной команды для безопасного завершения всех процессов не существует. Ближайшими являются:

  • Для завершения всех процессов, кроме системныхsudo kill -9 -1 (опасно).
  • Для завершения всех процессов пользователяsudo pkill -9 -u username.
  • Для завершения всех процессов в сессии/терминалеsudo pkill -9 -t pts/N.

ВАЖНО: Сигнал SIGKILL (-9) — это последнее средство. Сначала попробуйте "мягкие" сигналы SIGTERM (-15, по умолчанию) или SIGHUP (-1), которые позволяют процессу корректно завершить работу и сохранить данные. Безусловное использование kill -9 может привести к повреждению файлов и потере данных.