создаю демона на питоне (проверку ошибок убрал из кода чтоб не загромождать) так:
переменные: db_path - путь куда будет chdir демоном сделан my_script - путь к скрипту который хотим сделать демоном id_file - путь к файлу куда будет складываться вывод скрипта par1, par2 - параметры скрипту (это неважно) # первый раз форкаемся pid=os.fork() if pid==0: os.chdir(db_path) os.setsid() pid=os.fork() # второй раз форкаемся if pid>0: sys.exit(0) # переназначаем потоки si=file('/dev/null', 'r') so=file(id_file, 'a+', 0) os.dup2(si.fileno(), sys.stdin.fileno()) os.dup2(so.fileno(), sys.stdout.fileno()) os.dup2(so.fileno(), sys.stderr.fileno()) # пишем в файл свой pid print os.getpid() sys.stdout.flush() sys.stderr.flush() # дальше работает скрипт os.execv(my_script, (my_script, par1, par2)) ну и вот эта программка прекрасно работает на таких скриптах вроде: #!/bin/sh while /bin/true; do echo $1 $2 `date` stdout echo $1 $2 `date` stderr 1>&2 sleep 1 done то есть пофиг куда демон-скрипт пишет он все равно в наш файл попадает а дальше началась заморока если тестовый скрипт написан на perl, то почему-то его stderr работает, а его stdout в наш лог не выводится: #!/usr/bin/perl -w $login = shift; $password = shift; while(1) { print "$login $password"; sleep(1); } вот от такого скрипта в наш лог попадают только сообщения отладочные (stderr), а то что print'ами (stdout) не выводится :( я в перле не силен, я писал cgi обертку для чужого скрипта и не знаю что делать: из ком-строки запущенный перловый скрипт все выводит нормально а из демона - нет у меня есть предположения что это как-то связано с буфферизацией выходных потоков интерпретатором perl или чем-то около этого... но как поправить/выяснить не знаю помогите разобраться плз! -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]