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

alpha6 denis.fedoseev на gmail.com
Чт Июн 27 04:42:29 PDT 2013


Доброго времени суток, камрады.

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

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

В общем, хочется узнать у сообщества кто как справляется с такими задачами? И как вообще это нужно делать по канонам :)

С уважением,
Денис Федосеев



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