Несмотря на то, что я отправляю nethogs , для вывода требуется слишком большая задержка (около 5-200 секунд вместо 1 секунды зависит от канала, cmd и т. Д.). Nethogs печатает вывод каждую секунду.
Для простоты рассмотрим следующую команду (она занимает около 5 секунд)
sudo nethogs ppp0 | grep e | grep e |grep c
Я верю, что это происходит из-за буферизации в трубе.
Как я могу избежать задержки (в общем или в случае нетхов ) ???
Наконец я нашел его. Это может быть сделано просто с помощью жемчуга.
perl -le 'open(P," top |"); $|=1; while(<P>){ print }'
Возьмите пример
top | grep i | grep id
perl -le 'open(P," top |"); $|=1; while(<P>){ print "------","$_"; }' | grep i | grep id
Для nethogs
perl -le 'open(P,"sudo nethogs ppp0 |"); $|=1; while(<P>){ print "------","$_"; }' | grep e | grep e |grep c