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

Андрей Фёдоров secrethost на gmail.com
Чт Июн 27 08:27:02 PDT 2013


> Проблема заключается в том, что при запуске через IPC::Open2 я не могу
читать STDOUT этих самых запущенных процессов в процессе их работы.

Похоже на проблему с буферизацией вывода в дочерних процессах. Как-нибудь
её отключить, если есть исходники. Или как вариант в perldoc IPC::Open2 в
конце встречается такое:

The big problem with this approach is that if you don't have control over
source code being run in the child process, you can't control what it does
with pipe buffering.

The IO::Pty and Expect modules from CPAN can help with this, as they
provide a real tty (well, a pseudo-tty, actually), which gets you back to
line buffering in the invoked command again.


27 июня 2013 г., 15:42 пользователь alpha6 <denis.fedoseev на gmail.com>написал:

> Доброго времени суток, камрады.
>
> Требуется совет коллективного разума :)
> Задача: есть у меня демон на AE который запускает кучу процессов, следит
> за их жизнью и пишет вывод их STDOUT в лог-файлы. Процессы большие, тяжелые
> и не перловые.
>
> Проблема заключается в том, что при запуске через IPC::Open2 я не могу
> читать STDOUT этих самых запущенных процессов в процессе их работы.
> AE::Handle просто не реагирует на появление новых данных. Попытки читать
> через sysread приводят к блокировке приложения до конца работы читаемого
> процесса в силу особенностей IPC::Open2. Сейчас я обошел эту проблему так -
> ожидаю пока процесс завершится и считываю его вывод целиком в файл. Но
> такой метод не очень хорош т.к. процессы могут работать более часа и
> хочется видеть чего с ним происходит в реальном времени.
>
> В общем, хочется узнать у сообщества кто как справляется с такими
> задачами? И как вообще это нужно делать по канонам :)
>
> С уважением,
> Денис Федосеев
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20130627/e52ae3af/attachment.html>


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