table of contents
KILLALL(1) | Пользовательские команды | 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, --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).
2023-06-17 | psmisc |