On Wed, 10 Feb 2010 20:55:14 +0700
Denis Feklushkin <denis.feklush...@gmail.com> wrote:

> On Wed, 10 Feb 2010 14:54:49 +0300
> Alexey Pechnikov <pechni...@mobigroup.ru> wrote:
> 
> > Hello!
> > 
> > On Wednesday 10 February 2010 10:22:03 Roman S. Gushcha wrote:
> > > Есть клон: runit (http://smarden.org/runit/,естьврепе). Мне
> > > кажется более удобным.
> > > 
> > > ИМХО, daemontools и runit -- наиболее подходящие решения.
> > 
> > Поддерживаю. Активно использую в продакшене, очень удобно - 
> > возможность для пользователей запускать собственный экземпляр
> > супервизора (с правами пользователя) решает множество проблем,
> > в т.ч. безопасности (рутовые права теперь не нужны).
> 
> Это про какую из предложенных?
> 
> У меня на daemontools вот проблема вылезла какая - в лог не пишется
> весь STDIN, сгенерированный сервисом, только часть.
> 

Проблема оказалась такая.
"Демон" написан на питоне и вызывает другие программы вот таким кодом внутри 
себя:

                    p = Popen( res[1], shell = True, stdin=PIPE )
                    p.stdin.write( res[2] )
                    p.stdin.close()
                    p.wait()

если этот код закомментировать то всё ок и такой код в ./run отлично с ним 
работает:

=========
$ cat /etc/service/dhcs-daemon/run 
#!/bin/sh

set -ex

exec 2>&1

exec chpst -v -u dhcs-daemon /opt/dhcs/queue-daemon.py "dbname=dhcs-new" "5"
=========

если же приведённый вначале питоновский код оставить то после exec (он заменяет 
shell на свои аргументы, да?) питоновый stdin теряется неизвестно где и не 
попадает в логи

причём, если запустить exec /etc/service/dhcs-daemon/run в консоли то ничего не 
теряется, полный вывод питона наблюдается в консоли и вывод этот идёт в 
дескриптор stdout

питон на помойку?


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Ответить