[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: