KILLALL(1) Пользовательские команды KILLALL(1)

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

killall [-Z, --context pattern] [-e, --exact] [-g, --process-group] [-i, --interactive] [-n, --ns PID] [-o, --older-than TIME] [-q, --quiet] [-r, --regexp] [-s, --signal SIGNAL-SIGNAL] [-u, --user user] [-v, --verbose] [-w, --wait] [-y, --younger-than TIME] [-I, --ignore-case] [-V, --version] [--] name ...
killall -l
killall -V, --version

killall посылает сигнал всем процессам, выполняющим любую указанную команду. Если не указано имя сигнала, то используется SIGTERM.

Сигналы можно задавать именем (например, -HUP или -SIGHUP), номером (например, -1) или в параметре -s.

Если имя команды не является регулярным выражением (параметр -r) и содержит косую черту (/), то процессы, выполняющие этот определённый файл, будут выбраны для завершения независимо от их имени.

killall возвращает код выхода ноль, если был завершён хотя бы один процесс для каждой заданной команды, или, если команды не указаны, хотя бы один процесс, подошедший под требования поиска по -u и -Z. В противном случае killall возвращает ненулевое значение.

Процесс killall никогда не завершает сам себя (но может завершить другие процессы killall).

-e, --exact
Требовать полного совпадения для очень длинных имён. Если имя команды длиннее чем 15 символов, то полное имя может быть недоступно (т. е., часть затёрлась). В этом случае, killall завершит все процессы, совпадающие по первым 15 символам. С параметром -e такие элементы не обрабатываются. killall выводит сообщение для каждого необработанного элемента, если вместе с -e дополнительно указан параметр -v.
-I, --ignore-case
Игнорировать регистр символов в именах процессов.
-g, --process-group
Завершить группу процесса, в которую входит процесс. На всю группу посылается только один сигнал завершения, даже если в группе найдено несколько процессов.
-i, --interactive
Запрашивать подтверждение перед завершением процессов.
-l, --list
Показать все известные имена сигналов.
-n, --ns
Искать процессы в том же пространстве имён PID что и у PID. По умолчанию поиск выполняется по всем пространствам имён.
-o, --older-than
Искать процессы, старее (запущенные до) заданного времени. Время задаётся в виде числа с плавающей точки и идентификатора. Идентификаторами могут быть s,m,h,d,w,M,y (секунды, минуты, часы, дни, недели, месяцы и года, соответственно).
-q, --quiet
Не сообщать, если ни одного процесса не завершено.
-r, --regexp
Рассматривать шаблон имени процесса как расширенное регулярное выражение POSIX согласно regex(3).
-s, --signal, -SIGNAL
Посылать указанный СИГНАЛ, а не SIGTERM.
-u, --user
Завершить процессы, принадлежащие указанному пользователю. Имена команд необязательны.
-v, --verbose
Уведомлять об успешной отправке сигнала.
-V, --version
Показать информацию о версии.
-w, --wait
Ожидать завершения процессов. killall проверяет раз в секунду существование завершаемых процессов и прекращает работу только если никого не осталось.Заметим, что killall может ждать вечно, если сигнал был проигнорирован, никак не повлиял или если процесс остался в состоянии зомби.
-y, --younger-than
Искать процессы, новее (запущенные после) заданного времени. Время задаётся в виде числа с плавающей точки и идентификатора. Идентификаторами могут быть s,m,h,d,w,M,y (секунды, минуты, часы, дни, недели, месяцы и года, соответственно).
-Z, --context
Specify security context: kill only processes having security context that match with given extended regular expression pattern. Must precede other arguments on the command line. Command names are optional.

/proc
местонахождение файловой системы proc

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

Обратите внимание, что ввод killall имя может не привести к желаемому действиям на не Linux системах, особенно при запуске от привилегированного пользователя.

killall -w не понимает, что процесс исчез и заменён новым процессом с тем же PID между опросами.

Если процессы меняют свои имена, killall может не найти их.

killall имеет ограничение на имена, которые могут быть указаны в командной строке. Оно равно размеру unsigned long integer умноженному на 8. Для большинства 32-битных систем ограничение равно 32, а для 64-битных систем, обычно, равно 64.

kill(1), fuser(1), pgrep(1), pidof(1), pkill(1), ps(1), kill(2), regex(3).
2021-01-11 psmisc