[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