0

perl スクリプトを使用してバックグラウンド プロセスとして Linux シェルで tcpdump を起動したいのですが、出力を解析してからプロセスを強制終了する必要があります。これどうやってするの ?

4

1 に答える 1

1

私 Unix では、伝統的な方法は、小さくて非常に特殊なプログラムを作成し、それらを一緒にパイプすることです。tcpdump の出力をスクリプトの stdin にパイプしてみませんか?

私のperlは少し錆びています:

$| = 1;
my $pid = open(DUMP, "tcpdump -i eth1 -l -n 2>\&1 |");

while(<DUMP>) {
    # do something
    if($some_condition) {
        `kill $pid`;
        last;
    }
}
于 2012-10-10T05:54:54.733 に答える