[Moscow.pm] AnyEvent и работа с процессами.

Anton Nikishaev me на lelf.lu
Чт Июн 27 07:54:51 PDT 2013


On Jun 27, 2013, at 3:42 PM, alpha6 <denis.fedoseev at gmail.com> wrote:

> Требуется совет коллективного разума :)
> Задача: есть у меня демон на AE который запускает кучу процессов, следит за их жизнью и пишет вывод их STDOUT в лог-файлы. Процессы большие, тяжелые и не перловые.
> 
> Проблема заключается в том, что при запуске через IPC::Open2 я не могу читать STDOUT этих самых запущенных процессов в процессе их работы. AE::Handle просто не реагирует на появление новых данных.

Вообще-то реагирует.  Что-то неправильно готовите.

> Попытки читать через sysread приводят к блокировке приложения до конца работы читаемого процесса в силу особенностей IPC::Open2. Сейчас я обошел эту проблему так - ожидаю пока процесс завершится и считываю его вывод целиком в файл. Но такой метод не очень хорош т.к. процессы могут работать более часа и хочется видеть чего с ним происходит в реальном времени.
> 
> В общем, хочется узнать у сообщества кто как справляется с такими задачами? И как вообще это нужно делать по канонам :)

По канонам на cpan  обычно есть 10 готовых велосипедов :)





Подробная информация о списке рассылки Moscow-pm