LINUX.ORG.RU

Как правильно послать сигнал на завершение работы процессу?


0

0

Ситуация такая: есть процесс, ему в определенное время время необходимо послать сигнал на корректное завершение работы. (Например это сервер Counter-Strike, который должен вырубиться, но ситуация может возникнуть не только с сервером КС, поэтому вопрос задаю не в игроыой теме). Делаю так:

#killall -s TERM hlds_i686

Но как результат - перезапуск процесса (насколько я понимаю, потому что процесс hlds_i686 продолжает существовать, хотя игроки видят на экранах "Warning! Connection problem").

Так вот как правильно дать процессу завершить свою работу, наподобие того, как система завершает работу процессов при выключении компа...

★★★

# killall -s KILL hlds_i686 может быть?

theSoul ★★★
()

> как правильно дать процессу завершить свою работу

Зависит от того, какие сигналы и как обрабатывает данный процесс (читать доки, возможно, что нужно не послать сигнал, а запустить демона с каким-либо параметром, пример -- fetchmail --quit). Для демонов общепринято примерно так: HUP -- перечитать конфиг, переинициализироваться; TERM -- завершиться. Если автор демона -- мудак, то прибивание процесса возможно только при помощи посылки сигнала KILL.

Obidos ★★★★★
()

# killall -
-ABRT -HUP -PIPE -RTMAX-10 -RTMAX-2 -RTMAX-8 -RTMIN+12 -RTMIN+4 -SEGV -TTIN -WINCH
-ALRM -ILL -PROF -RTMAX-11 -RTMAX-3 -RTMAX-9 -RTMIN+13 -RTMIN+5 -STOP -TTOU -XCPU
-BUS -INT -PWR -RTMAX-12 -RTMAX-4 -RTMIN -RTMIN+14 -RTMIN+6 -SYS -URG -XFSZ
-CHLD -IO -QUIT -RTMAX-13 -RTMAX-5 -RTMIN+1 -RTMIN+15 -RTMIN+7 -TERM -USR1
-CONT -JUNK(16) -RTMAX -RTMAX-14 -RTMAX-6 -RTMIN+10 -RTMIN+2 -RTMIN+8 -TRAP -USR2
-FPE -KILL -RTMAX-1 -RTMAX-15 -RTMAX-7 -RTMIN+11 -RTMIN+3 -RTMIN+9 -TSTP -VTALRM

Имхо, killall -QUIT

anonymous
()

pc ax ,там найти номер своего процесса kill номер,если не помогает - kill -9 номер пример kill 12456 kill -9 12456 А вообще почитать а процессах...

gsn
()
Ответ на: комментарий от gsn

>pc ax ,там найти номер своего процесса kill номер,если не помогает - kill -9 номер пример kill 12456 kill -9 12456

Так нужно все автоматом, парни, делать... Т.е. как я понимаю тут уже скриптец нужен который выявляет ПИД по имени процесса, а потом его пристреливает...

KOPEHb ★★★
() автор топика
Ответ на: комментарий от KOPEHb

> тут уже скриптец нужен

Если в системе нет killall, то скриптец пишется менее чем за минуту с применением kill, ps, grep и awk.

IMHO, изначальный вопрос был всё же про то, как корректно прибить конкретную хрень. И ответы были даны.

Obidos ★★★★★
()
Ответ на: комментарий от gsn

>pc ax ,там найти номер своего процесса
Кто так учил pid искать?
pidof <process-name>

EraSER
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.