Re: как демонизировать программу?
Hello!
On Wednesday 10 February 2010 16:55:14 Denis Feklushkin wrote:
> > > ИМХО, daemontools и runit -- наиболее подходящие решения.
> >
> > Поддерживаю. Активно использую в продакшене, очень удобно -
> > возможность для пользователей запускать собственный экземпляр
> > супервизора (с правами пользователя) решает множество проблем,
> > в т.ч. безопасности (рутовые права теперь не нужны).
>
> Это про какую из предложенных?
runit
> У меня на daemontools вот проблема вылезла какая - в лог не пишется весь STDIN, сгенерированный сервисом, только часть.
"STDIN, сгенерированный сервисом" - это сильно.
>
> Вот пример того что выдаёт программа запущенная просто в консоли, нормальный её вывод:
>
> # setuidgid dhcs-daemon /opt/dhcs/queue-daemon.py "dbname=dhcs-new" 3
> Command: cat; sleep 5 attempt: 1
> Command: cat; sleep 5 attempt: 1
> gid:1026
> Command: cat; sleep 5 attempt: 1
> Command: cat; sleep 5 attempt: 1
> Command: cat; sleep 5 attempt: 1
> Command: cat; sleep 5 attempt: 1
> Command: ssh db touch /tmp/95-ono.txt attempt: 1
> Warning: Permanently added 'db,192.168.1.75' (RSA) to the list of known
> hosts.
>
> А вот та же программа, лог через daemontools (multilog):
>
> =================
> @400000004b72b99121efeb6c Warning: Permanently added 'db,192.168.1.75' (RSA) to the list of known hosts.
> =================
В первом случае программа запускается от вашей учетной записи, так как нет у вас прав на смену пользователя.
А от рута нужного ключика нет, и на запросе его ввода все останавливается.
> Всё! stdin куда-то пропал!
Содрогнулся.
Best regards, Alexey Pechnikov.
http://pechnikov.tel/
Reply to: