linux - 如何在 linux 上运行后台进程,然后在解析输出后将其终止?

标签 linux shell background-process tcpdump

我想使用 perl 脚本在 linux shell 上将 tcpdump 作为后台进程启动,但我必须解析输出,然后我需要终止进程。我该怎么做?

最佳答案

在 Unix 中,传统的方法是编写非常专业的小程序并将它们通过管道连接在一起。为什么不直接将 tcpdump 输出通过管道传输到脚本标准输入中?

我的 perl 有点生疏了:

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

while(<DUMP>) {
    # do something
    if($some_condition) {
        `kill $pid`;
        last;
    }
}

关于linux - 如何在 linux 上运行后台进程,然后在解析输出后将其终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12812611/

相关文章:

linux - 解析GETOPTS中带引号的字符串

haskell - 保持后台进程在 heroku 上运行

sql-server - 如何在 Linux 中安装 freetds?

linux - 如何区分内核scsi_device结构中的USB和(S)ATA设备?

linux - 执行 HBase shell 脚本后返回 linux 命令行提示符

linux - 从 bash 脚本中的字符串中提取模式

ruby - 采用 Sinatra 的可靠快速排队系统

android - 如何判断应用程序是否在后台?

python - 从 wpa_cli 状态获取 p2p_device_address

c - Linux中进程和线程的区别