Bug 15044

Summary: Добавить функцию принудительной остановки демона
Product: Sisyphus Reporter: Andrew Kornilov <hiddenman>
Component: serviceAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P2 CC: glebfm, ktirf, ldv, legion, mike, placeholder, vvk
Version: unstable   
Hardware: all   
OS: Linux   

Description Andrew Kornilov 2008-03-24 00:49:21 MSK
Просьба сделать нечто вида --force[=SIGNUM] для функции stop_daemon, то есть,
принудительное завершение процесса сигналом SIGNUM (по умолчанию KILL, возможно,
кому-то понадобиться переопределить на STOP, например) после истечения некоего
timeout, в качестве fallback.
Довольно часто встречается, что некое ПО зависает наглухо или по неведомых
причинам нормально не завершает работу по kill -TERM. Например, mysql может так
себя вести. Коммерческого ПО тоже достаточно, которое иногда виснет. В httpd у
нас вообще штатно вбито killall -9q libhttpd.ep.
Приходится и самому строить такие конструкции, т.к. _гарантированно_ сейчас
завершить процесс с помощью stop_daemon не получается, чтение --help от
start-stop-daemon и /etc/init.d/functions ничего не подсказало.
При использовании мониторинга на серверах это более чем необходимо, т.к. тот же
monit в цикле пытается остановить зависший или нереагирующий процесс и у него
это не получается.
Починить всё ПО (особенно коммерческое), imho, сложнее, чем реализовать такой
функционал.
Comment 1 Dmitry V. Levin 2008-04-25 05:37:16 MSD
У start-stop-daemon есть параметр --retry.
Каким вы хотите видеть соответствующий интерфейс у stop_daemon?
Comment 2 Andrew Kornilov 2008-04-25 17:47:24 MSD
Гм. Судя по ману, можно указать --retry KILL/forever и это будет аналогом force?
Comment 3 Andrew Kornilov 2008-08-07 03:27:23 MSD
Если я правильно понял то, что написано в man start-stop-daemon, то -R  -это именно то, что нужно. Думаю, баг можно закрывать. 
Comment 4 Andrew Kornilov 2008-08-11 03:15:00 MSD
Нда, только дошло, что есть поддержка этой опции в самом start-stop-daemon, однако же в stop_daemon в functions этой поддержки нет. Просьба добавить. Может быть даже в таком же виде.
Comment 5 Andrew Kornilov 2008-09-03 01:40:51 MSD
ping

Так что, поддержка retry в скриптах будет? Если да, то просьба обновить пакеты во всех бранчах. Вместе с пакетом startup, где исправлено удаление подкаталогов в /var/run/$name/
Comment 6 Dmitry V. Levin 2008-09-04 01:32:29 MSD
0.5.15-alt1-1-ga562d6c(In reply to comment #5)
> ping
> 
> Так что, поддержка retry в скриптах будет?

Тестируйте: 0.5.15-alt1-1-ga562d6c