KILLALL(1)

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

ОБЗОР
killall [-Z, --context шаблон] [-e, --exact] [-g, --process-group] [-i, --interactive] [-n, --ns PID] [-o, --older-than ВРЕМЯ] [-q, --quiet] [-r, --regexp] [-s, --signal СИГНАЛ, -СИГНАЛ] [-u, --user пользователь] [-v, --verbose] [-w, --wait] [-y, --younger-than ВРЕМЯ] [-I, --ignore-case] [-V, --version] [--] имя …
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, -СИГНАЛ
    Посылать указанный СИГНАЛ, а не SIGTERM.

-u, --user
    Завершить процессы, принадлежащие указанному пользователю. Имена команд необязательны.

-v, --verbose
    Уведомлять об успешной отправке сигнала.

-V, --version
    Показать информацию о версии.

-w, --wait
    Ожидать завершения процессов. killall проверяет раз в секунду существование завершаемых процессов и прекращает работу только если никого не осталось.Заметим, что killall может ждать вечно, если сигнал был проигнорирован, никак не повлиял или если процесс остался в состоянии зомби.

-y, --younger-than
    Искать процессы, новее (запущенные после) заданного времени. Время задаётся в виде числа с плавающей точки и идентификатора. Идентификаторами могут быть s,m,h,d,w,M,y (секунды, минуты, часы, дни, недели, месяцы и года, соответственно).

-Z, --context
    Задать контекст безопасности: завершать только процессы с контекстом безопасности, который совпадает с заданным шаблоном расширенного регулярного выражения. В командной строке должен указываться раньше остальных параметров. Имена команд необязательны.

ФАЙЛЫ

/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).