[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