2013-11-21 2 views
1

Привет Я пытаюсь загрузить в фоновом режиме, так что вы можете TCPDUMP нагрузку молча, я имею в виду, чтобы загрузить, но ничего не показываетRun бесшумный команда на Linux с Perl

мне было сказано, что с помощью команды и положил конец &, но проблема в том, что он не работает.

Код это:

#! usr/bin/perl 
system ("tcpdump-s 0-A 'tcp dst port 80 and (tcp [((tcp [12:1] & 0xf0) >> 2): 4] = 0x504f5354)' & "); 

Что я делаю неправильно?

+1

попробовать заменить и с '>/разработчика/null' – Suic

+1

Почему вы даже включаете Perl? Почему это не одна строка в сценарии оболочки? –

ответ

1

Добавление & в конец строки заставляет оболочку запускать задание в фоновом режиме, но выходные потоки задания по-прежнему унаследованы от его родителя. Добавьте некоторые переадресации, чтобы сделать вывод в другом месте. Например: tcpdump ... > /tmp/output & Поскольку вы призываете tcpdump из perl, кажется более вероятным, что вместо system вы хотите, чтобы открыть канал и читать из него: open my $f, '-|', 'tcpdump ... (no trailing & or >)

+1

'popen'? Я не думаю, что в perl есть такая функция. –

+1

Даже не '' POSIX :: popen'' с 'open' обрабатывает работу, которую будет обрабатывать' popen'. Но это мелочь; остальное звучит. –

+0

Спасибо за помощь. – user3015248

Смежные вопросы