Tux Kill BillКак известно, команда kill, несмотря на своё «кровожадное» название, предназначена всего лишь для того, чтобы посылать процессам «нужные» сигналы. Частными случаями этих сигналов являются сигналы завершения (которые, тем не менее, используется чаще всех — видимо, поэтому команда и получила такое «убийственное» название). Обычно мы используем её в виде kill -SIGNAL PID, где PID — идентификатор процесса.

Но есть и другие способы эффективно «кильнуть» процесс — по имени, по части имени, просто показав на него курсором, и т.д. Рассмотрим несколько из них.

1. Команда Kill: работаем по PID’у

Все нижеописанные команды kill посылают сигнал TERM процессам. Можно использовать как имя, так и номера сигналов. Предварительно нужно найти соответствующий процессу pid и указать его в качестве аргумента.

$ kill -TERM pid
$ kill -SIGTERM pid
$ kill -15 pid

Пример: прибьём-ка firefox.

$ ps -ef | grep firefox
1986 ?        Sl     7:22 /usr/lib/firefox-3.5.3/firefox
$ kill -9 1986

2. Команда killall: «…позови меня тихо по имени…»

Вместо PID можно указать имя процесса. Если есть более одного процесса с таким именем, все они будут «обработаны».

Пример: и снова прибьём firefox

$ killall -9 firefox

3. Команда pkill: Сигналим по части имени

Вы можете послать сигнал любому процессу по имени или части его. И для этого не нужно знать PID процесса для посылки сигнала.

Пример: Послать SIGTERM всем процессам со строкой «sample» в имени.

$ pkill sample

Перед посылкой сигнала, лучше проверить, какие процессы «попадут под раздачу» с помощью команды pgrep -l, которая отобразит все process ID и имена, подпадающие под критерий.

В этом примере все процессы созданы таким образом, что пишут сигналы в signal-log, сообщая попутно свой PID.

$ pgrep -l sample
12406 sample-server.p
12425 sample-server.p
12430 sample-garbagec

$ pkill -USR1 sample

$ cat signal-log
Name: ./sample-server.pl Pid: 12406 Signal Received: USR1
Name: ./sample-server.pl Pid: 12425 Signal Received: USR1
Name: ./sample-garbagecollector.pl Pid: 12430 Signal Received: USR1
Note: The part of name which you specify should be in the character within the first 15 character of the process name.

Ещё одна полезная функция у pkill — возможность отправить сигнал группе процессов по имени пользователя (UID). Например, можно легко остановить все процессы zabbix (как агента, так и сервера, а также всё, ими порождённое), потому что они работают от пользователя zabbix:

observer:~ # pgrep -l -U zabbix
617 rstats
622 netcat
846 rstats
849 netcat
1494 sh
1495 fping
1566 checkurl
1568 checkurl
1569 time
1570 wget
1571 storage_DS4000
1574 cat
1575 awk
1576 grep
1577 grep
21651 zabbix_agentd
21652 zabbix_agentd
21653 zabbix_agentd
21654 zabbix_agentd
21655 zabbix_agentd
21656 zabbix_agentd
21657 zabbix_agentd
21658 zabbix_agentd
27062 zabbix_server
27112 zabbix_server
27113 zabbix_server
observer:~ # pkill -U zabbix
observer:~ #



4. Команда xkill: «… не выпендривайся, покажи пальцем!»

Xkill — простейший путь завершить неправильно функционирующую программу. Когда вы хотите покончить с процессом, запустите xkill, и ваш мышиный курсор приобретёт зловещие очертания. Кликнув на окне приложения, вы завершите соответствующий процесс.

$ xkill
Select the window whose client you wish to kill with button 1....
xkill:  killing creator of resource 0x1200003

Надо сказать, что, естественно, программа в состоянии работать только с процессами, имеющими окна в XWindow. Так что завершить, например, hald, вы, при всём желании, не сможете.

Источник вдохновения

Возможно, вас заинтересует:

  1. Прогресс при копировании в dd Для заметки: при копировании с помощью команды dd if=......
  2. Найди своих «слонов» Стоит ли объяснять, как важно вовремя заметить, когда в...
  3. Zabbix’овые странности Только что столкнулся с одной очень неприятной особенностью Zabbix...
  4. Чёртова дюжина способов «замочить пингвина» Предлагаю подборочку разных команд, которые гарантированно положат вашу Linux-систему....
  5. Устанавливаем систему мониторинга zabbix Итак, поговорив немного о возможностях системы мониторинга zabbix, приступим...
  6. Новый Zabbix, семафоры и скрипт для спокойного сна Сегодня вышел Zabbix-1.6.5. Новую версию ждали долго и с...