Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

PROCESS_KILL_TOP Linux / DevOps

Как посмотреть процессы в Linux и закрыть зависшую программу: top и kill

Обновлено: 26.08.2026 · Официальная документация ↗

Сервер сильно тормозит, процессор загружен на 100%, веб-сайт не открывается из-за зависшего скрипта или бесконечного цикла, и администратору нужно найти процесс-виновник и принудительно завершить его.

Шаг 1. Просмотр процессов в реальном времени (команда top)

Введите в консоли команду диспетчера задач:

top

Как читать окно `top`:

  • %CPU: процент использования процессора конкретным процессом.
  • %MEM: процент занятой оперативной памяти.
  • PID (Process ID): уникальный номер процесса в системе (например, 14520).
  • COMMAND: имя исполняемой программы (например, python3, php-fpm, node).

Полезные горячие клавиши внутри top:

  • Нажмите Shift + P — отсортировать процессы по загрузке CPU;
  • Нажмите Shift + M — отсортировать процессы по потреблению RAM;
  • Нажмите q — выйти из top обратно в терминал.

Шаг 2. Завершение процесса по его номеру PID (команда kill)

  1. Найдите в столбце PID номер зависшей программы (допустим, PID = 5432).
  2. Мягкое завершение (SIGTERM): отправляет программе вежливую просьбу закрыться с сохранением данных:
    kill 5432
  3. Принудительное жесткое убийство (SIGKILL / -9): если программа намертво зависла и не закрывается:
    kill -9 5432

Шаг 3. Быстрое убийство процессов по имени (killall и pkill)

Если зависло сразу 10 процессов с одинаковым именем (например, подвисли воркеры PHP):

sudo killall -9 php-fpm
# или по маске имени:
sudo pkill -9 -f script_name.py
💡 Практика специалистов: Будьте осторожны с командой kill -9 для баз данных (MySQL, PostgreSQL): жесткое завершение во время транзакции может повредить целостность таблиц и перевести базу в режим аварийного восстановления (Crash Recovery).

Частые вопросы (FAQ)

В чем разница между 'kill PID' и 'kill -9 PID'?

Обычный 'kill' посылает сигнал SIGTERM (15), позволяя процессу корректно закрыть файлы и сокеты. 'kill -9' посылает сигнал SIGKILL, который перехватывается ядром Linux и мгновенно уничтожает процесс из памяти без шанса на самосохранение.

Почему после команды kill -9 процесс остается в списке со статусом Z (Zombie)?

Зомби-процесс уже мертв и не потребляет ресурсы, но его родительский процесс еще не прочитал код его завершения. Чтобы убрать зомби, нужно перезапустить его родительский процесс (Parent PID).

Как установить более удобный цветной диспетчер задач htop?

Выполните sudo apt install htop -y и запустите команду htop. В нем можно листать список мышкой и убивать процессы нажатием клавиши F9.

Как найти PID программы, если известна только ее команда?

Используйте утилиту pgrep или сочетание с grep: pgrep -l nginx или ps aux | grep nginx.

Полезные материалы
Рекомендуем