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

SoNaR sonar at scli.ru
Wed Apr 23 18:52:39 MSD 2003


Hello vic,

Tuesday, April 22, 2003, 8:19:57 PM, you wrote:

vi> 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,но вот не соображу,куда мне его вызов поместить.
vi> Переписал код таким макаром

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

vi> Вроде теперь не зомбится.

А чего все таки блоком не стал делать... типа:
IO::popen("iptables -nvL FORWARD"){ |ipt|
    ipt1=ipt.grep(/192.168.1.244/)
}

Так зомбится будет?

-- 
Best regards,
 SoNaR                            mailto:sonar at scli.ru




More information about the Ruby mailing list