[Ruby] IO.popen("cmd").readlines.grep(/str/) оставляет зомби

vic ismakaev viclists at mail.esoo.ru
Tue Apr 22 20:19:57 MSD 2003


22 Апрель 2003 21:56, vic ismakaev написал:
> 22 Апрель 2003 21:50, Alexander Bokovoy написал:
> > On Tue, Apr 22, 2003 at 09:42:24PM +0600, vic ismakaev wrote:
> > > Приветствую!
> > > Снова я с тупым вопросом.
> > > Например,когда в цикле каждую секунду я пытаюсь выполнить оперцию вида
> > >
> > > ipt=IO::popen("iptables -nvL FORWARD").readlines.grep(/192.168.1.244/)
> > >
> > > то у меня катастрофически растет количство зомби-процессов.
> > > С чем это может быть связано и что я делаю не так?
> >
> > С тем, что IO#popen порождает IO-объект, который не уничтожается.
> > Попробуйте вариант с блоком.
>
> Придется наверное.Хотя без него дюже красиво получается.
>
> Для IO есть методы close,но вот не соображу,куда мне его вызов поместить.
Переписал код таким макаром

ipt=IO::popen("iptables -nvL FORWARD")
 ipt1=ipt.grep(/192.168.1.244/)
 ipt.close_read

Вроде теперь не зомбится.
-- 
С уважением
Виктор В Исмакаев



More information about the Ruby mailing list