Проект переехал на новый домен!  [[ перейти ]]


kill - убиение процесса

sh# ps ax | grep syslogd
   470  ??  Is     0:02,30 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -s
 89203  pa  RL+    0:00,00 grep syslog
  
Видим что у syslogd pid=470

Можно сделать так:
sh# cat /var/run/syslog.pid
470

Если взять это в кавычки ``, то комманда вернёт значение:
sh# kill `cat /var/run/syslog.pid`
Это будет выглядеть так и будет равносильно kill 470

Можно получить список сигналов коммандой:
sh# kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP
TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 LWP

Если указываем kill 470 без дополнительных сигналов, то это равносильно
тому что мы послали сигнал TERM, хотя можем указать -9 (безусловный килл)

Можно посылать либо так:
sh# kill -1 `cat /var/run/syslog.pid`
либо так:
sh# kill -s HUP `cat /var/run/syslog.pid`
Это будет одно и тоже.

1 - HUP (перечитать конфиг)
2 - INT (прерывание)
3 - QUIT (выход)
6 - ABRT (прерывание)
9 - KILL (непрерываемое, неперехватываемое завершение)
14 - ALRM (сигнальный таймер)
15 - TERM (софтверный сигнал завершения)

Ниже приедены значения:
1 - HUP (перечитать конфиг)
2 - INT (прерывание)
3 - QUIT (выход)
6 - ABRT (прерывание)
9 - KILL (непрерываемое, неперехватываемое завершение)
14 - ALRM (сигнальный таймер)
15 - TERM (софтверный сигнал завершения)

killall - убивает ВСЕ процессы

Спрашивает перед убиением каждого процесса:
sh# killall -i

Можно получить список сигналов коммандой:
sh# killall -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP
TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2

Убивать можно также как и в kill как по индентификатору так и по сигналу.