pgrep
И pkill
коммунальные услуги были введены в компании Sun Solaris 7 и, как отметил g33klord , они берут образец в качестве аргумента , который сопоставляется с именами запущенных процессов. Пока pgrep
просто печатает список совпадающих процессов, pkill
отправит указанный сигнал (или SIGTERM
по умолчанию) процессам. Общие параметры и семантика между pgrep
и pkill
удобны, когда вы хотите быть осторожными и сначала просмотреть процессы сопоставления списков pgrep
, а затем приступить к их уничтожению pkill
. pgrep
и pkill
предоставляются в PROCPS пакет, который также предоставляет другую /proc
файловую систему утилита, такие как ps
, top
, free
, uptime
среди других.
Команда killall
предоставляется пакетом psmisc и отличается pkill
тем, что по умолчанию она точно соответствует имени аргумента (до первых 15 символов) при определении процессов, на которые будут отправляться сигналы. Опция -e
, --exact
может быть указана, чтобы также требовать точных совпадений для имен длиннее 15 символов. Это делает killall
более безопасным использование по сравнению с pkill
. Если указанный аргумент содержит /
символы slash ( ), он интерпретируется как имя файла, и процессы, выполняющие этот конкретный файл, будут выбраны в качестве получателей сигнала. killall
также поддерживает регулярные выражения имен процессов, через -r
, --regexp
вариант.
Есть и другие отличия. killall
Команды, например , имеют опции для согласования процессов по возрасту ( -o
, --older-than
и -y
, --younger-than
), в то время как pkill
можно сказать только процессы глушения на конкретный терминале (через -t
опцию). Очевидно, что две команды имеют определенные ниши.
Обратите внимание, что killall
команда в системах, происходящих от Unix System V (в частности , Solaris от Sun , IBM AIX от IBM и HP-UX от HP ), убивает все процессы, убиваемые конкретным пользователем, эффективно отключая систему, если она запускается пользователем root.
Утилиты Linux psmisc были портированы на BSD (и в расширении Mac OS X ), поэтому killall
следует семантика «уничтожить процессы по имени».