[sisyphus] Fwd: Re: [Comm] start-stop-daemon

Dmitry V. Levin ldv на altlinux.org
Вс Май 25 22:59:17 MSD 2003


On Sun, May 25, 2003 at 09:37:24PM +0400, Fred wrote:
> > от Самого:
> > root]# service smb status
> > smbd is running
> > nmbd is running
> >
> > от себя, любимого:
> > fred]$ service smb status
> > smbd is stopped
> > nmbd is stopped
> >
> > Лихо!
> > Я опять чего-то не прочитал о каких-нибудь изменениях? :)
> > Укажите, плз.
> > А то у меня мониторящий скриптик крутится, там на  service smb status
> > кой-чего завязано. Не от рута ж его теперь пускать...
> 
> Да, есть такой момент.
> Пишите в sisyphus@, в этом списке рассылки я вам на этот в целом
> неплохой вопрос не отвечу - policy запрещает.

Начиная с того момента, как эта часть initscripts переехала в пакет
service, в реализации произошли существенные изменения, см. моё
развёрнутое письмо на эту тему в архиве devel на .

В частности, status вычисляется более аккуратно, ввиду чего пользователь
не может достоверно установить, запущен ли рутом тот или иной сервис.
Впрочем, с меньшей степенью достоверности (а именно, с той же, что и
раньше) найти процесс можно.

Рассмотрим вкратце эту ситуацию на примере crond, который, в отличие от
smb, запущен практически у всех:
# /etc/init.d/crond status
crond is running
$ /etc/init.d/crond status
crond is dead, but stale PID file exists
$ sh -x /etc/init.d/crond status 2>&1 |grep '^+ start-stop-daemon'
+ start-stop-daemon --stop --test --exec /usr/sbin/crond --pidfile /var/run/crond.pid --user root
$ /sbin/start-stop-daemon --stop --test --exec /usr/sbin/crond --pidfile /var/run/crond.pid --user root
No /usr/sbin/crond found running; none killed.
# /sbin/start-stop-daemon --stop --test --exec /usr/sbin/crond --pidfile /var/run/crond.pid --user root
Would send signal 15 to 3014.

Из приведённого примера видно, что start-stop-daemon(8) не нашёл процесс /usr/sbin/crond.
То же самое говорит и pidof(8):
$ echo "pid=$(pidof /usr/sbin/crond)"
pid=
# echo "pid=$(pidof /usr/sbin/crond)"
pid=3014

В то же самое время:
$ pidof crond
3014
$ /sbin/start-stop-daemon --stop --test --name crond --pidfile /var/run/crond.pid --user root
Would send signal 15 to 3014.

Ну вот, выводы делайте сами.


--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/sisyphus/attachments/20030525/42f7d437/attachment-0009.bin 


Подробная информация о списке рассылки Sisyphus