<div dir="ltr">Под такую задачу больше подходит Node.JS, как тонкий посредник. Никаких сложностей при работе со сторонними процессами.</div><div class="gmail_extra"><br><br><div class="gmail_quote">27 июня 2013 г., 15:42 пользователь alpha6 <span dir="ltr"><<a href="mailto:denis.fedoseev@gmail.com" target="_blank">denis.fedoseev@gmail.com</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Доброго времени суток, камрады.<br>
<br>
Требуется совет коллективного разума :)<br>
Задача: есть у меня демон на AE который запускает кучу процессов, следит за их жизнью и пишет вывод их STDOUT в лог-файлы. Процессы большие, тяжелые и не перловые.<br>
<br>
Проблема заключается в том, что при запуске через IPC::Open2 я не могу читать STDOUT этих самых запущенных процессов в процессе их работы. AE::Handle просто не реагирует на появление новых данных. Попытки читать через sysread приводят к блокировке приложения до конца работы читаемого процесса в силу особенностей IPC::Open2. Сейчас я обошел эту проблему так - ожидаю пока процесс завершится и считываю его вывод целиком в файл. Но такой метод не очень хорош т.к. процессы могут работать более часа и хочется видеть чего с ним происходит в реальном времени.<br>

<br>
В общем, хочется узнать у сообщества кто как справляется с такими задачами? И как вообще это нужно делать по канонам :)<br>
<br>
С уважением,<br>
Денис Федосеев<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</font></span></blockquote></div><br></div>