Процессы в Linux: первые шаги без риска завершить лишнее
За 10 минут вы научитесь находить процессы, смотреть их состояние и безопасно останавливать тестовую команду. Для примеров подойдут современные Linux-дистрибутивы с procps-ng; никаких прав администратора не потребуется.

За 10 минут вы научитесь находить процессы в Linux, проверять, что они делают, и останавливать собственную тестовую команду без риска завершить что-то важное. Примеры рассчитаны на Linux с утилитами procps-ng — например, Ubuntu 24.04 LTS. Большинство команд подходит и другим распространённым дистрибутивам.
Перед началом
Нужен открытый терминал и обычная учётная запись. В примерах мы запустим безопасную команду sleep: она ничего не меняет и просто ждёт заданное время. Команды с переменной TEST_PID выполняйте в том же окне терминала, где запустили её: эта переменная хранится в текущей оболочке.
Проверьте, какие версии утилит установлены: команды и опции ниже подходят для procps-ng 4.x. Точный номер покажут сами программы; пакеты дистрибутивов могут отличаться.
ps --version
pgrep --version
Первые шаги: найти и остановить процесс
Запустите тестовый процесс в фоне. Символ
&возвращает управление терминалу, а$!сохраняет PID последней запущенной фоновой команды.sleep 300 & TEST_PID=$! printf 'PID: %s\n' "$TEST_PID"Проверка: терминал напечатает число после
PID:. Это идентификатор процесса, который вы только что создали.Посмотрите на конкретный процесс. Команда
psпоказывает снимок состояния, а параметр-pограничивает его одним PID.ps -p "$TEST_PID" -o pid,ppid,stat,etime,cmdПроверка: в выводе есть строка с тем же PID, командой
sleep 300и состоянием процесса. Если видите только заголовок столбцов, процесс уже завершился или PID неверен.Найдите процессы по имени. Это удобно, когда PID неизвестен. Опция
-aпоказывает командную строку, а-uограничивает поиск вашим пользователем.pgrep -a -u "$USER" sleepПроверка: среди результатов найдите PID из предыдущего шага. Если запущено несколько команд
sleep, не выбирайте процесс только по имени: сравните PID и командную строку.Посмотрите процессы в интерактивном списке.
topобновляет данные во время работы и помогает заметить, какой процесс расходует CPU.top -p "$TEST_PID"Проверка: в списке появляется ваш процесс. Нажмите
q, чтобы выйти. Если установленная версияtopне принимает параметр-p, запустите простоtop, найдите PID в списке и также нажмитеq.Попросите процесс завершиться штатно. Сигнал
TERMдаёт программе возможность закончить работу и освободить ресурсы.kill -TERM "$TEST_PID"Проверка: проверьте PID ещё раз. Если строка процесса исчезла, команда завершилась. Если используете ту же оболочку, выполните
wait "$TEST_PID": после сигнала ожидание может вернуть ненулевой код завершения — это нормально для остановленного процесса.
Как читать вывод
В команде ps -p ... -o ... мы попросили показать конкретные поля. PID — номер процесса, PPID — номер родительского процесса, STAT — состояние, ETIME — время с запуска, CMD — команда с аргументами. Эти сведения помогают отличить нужный процесс от похожих.
В поле STAT обычно встречаются буквы R (выполняется или готов к выполнению), S (ждёт события), D (непрерываемое ожидание, часто связано с вводом-выводом), T (остановлен) и Z (завершился, но ещё числится у родительского процесса). Это короткая подсказка, а не полный диагноз: детали зависят от ситуации.
PID — идентификатор процесса, который ядро Linux использует, чтобы различать процессы. Он может быть назначен другому процессу после завершения исходного, поэтому перед отправкой сигнала проверяйте актуальную команду и пользователя, а не полагайтесь на число, сохранённое час назад.
Правило для первых действий простое: сначала найдите процесс и проверьте его команду, затем отправляйте сигнал. Один неверный PID может остановить не ту программу.
Если не получилось
«No such process» или «No such process» при вызове
kill. Процесс мог завершиться сам, а PID уже не существует. Повторите поиск черезpgrepили проверьте его команду черезps; не отправляйте сигнал старому PID наугад.«Operation not permitted». У вашей учётной записи, вероятно, нет права управлять этим процессом. Сначала сверьте пользователя и PID. Не запускайте
sudo killавтоматически: для системного процесса сначала выясните, что это за служба и почему её нужно останавливать.pgrepничего не вывел. Возможно, команда завершилась или имя процесса отличается. Ищите по более точному имени; параметр-fменяет поиск на всю командную строку, но может найти и команду, в аргументах которой встречается это слово.Процесс не исчез после
TERM. Программа может завершаться медленно, обрабатывать сигнал или ждать операцию ввода-вывода. Подождите и проверьте PID снова.KILLзавершает процесс без возможности штатной очистки и не устраняет причину ожидания, поэтому это крайний вариант, а не следующий шаг по умолчанию.Видите состояние
Z. Такой процесс уже завершился; обычно его должен убрать родительский процесс. Повторная отправка сигнала самому зомби не поможет. Если состояние сохраняется, выясните, какой родитель его создал, прежде чем предпринимать действия.
Что делать дальше
Потренируйтесь на безопасной команде: запустите sleep 300, найдите её через ps и pgrep, остановите сигналом TERM. Затем изучите справку именно установленной системы: man ps, man pgrep, man kill. На рабочем сервере перед остановкой процесса проверьте владельца, команду и родителя; для управления службами используйте штатный менеджер служб, а не завершайте процессы по случайно найденному PID.
Защитник прав потребителей: Досудебные претензии на возврат товара со ссылками на ЗоЗПП.
Спросить за 15 ₽Источники: Руководство Linux: ps(1), Руководство Linux: pgrep(1), pkill(1), pidwait(1)
Частые вопросы
Чем процесс отличается от программы?
Как посмотреть все процессы, а не только свои?
Можно ли сразу завершить процесс через `kill -9`?
Почему `pgrep` находит несколько одинаковых процессов?
Что делать, если `TERM` не остановил процесс?
Подойдут ли команды для другой версии Linux?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.