Manpages

ИМЯ

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
, --list
killall -V
--version

ОПИСАНИЕ

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

Signals can be specified either by name (e.g. -HUP or -SIGHUP) or by number (e.g. -1) or by option -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).