免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1899 | 回复: 2
打印 上一主题 下一主题

【求助】perl中异常的fd无法释放 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-20 16:28 |只看该作者 |倒序浏览
本帖最后由 天野飘 于 2010-09-20 16:37 编辑

我想抓监控某块网卡上有没数据包,如果不用alarm,则可能在执行抓包时程序阻塞。但是这样引起一个问题,就是在没有流的情况下killall掉的tcpdump,可能有fd没关闭,这是个后台程序,fd可能会非常多?大家有没好点子啊?我没辙了。
顺便说下,用system执行tcpdump也不行。

sub tcpdump_receive_ip()
{   

        eval
        {
            alarm 1;
            `nohup tcpdump -ni eth0 -c 10 greater 1358`;
            alarm 0;
        };
        if ($@)
        {
            `killall  tcpdump`;
            return -1;
        }
    return 0;
}

才一会就这样:
linux:/home # l /proc/19784/fd
total 13
dr-x------ 2 root root  0 Sep 20 16:11 ./
dr-xr-xr-x 5 root root  0 Sep 20 16:11 ../
lr-x------ 1 root root 64 Sep 20 16:28 0 -> /dev/null
lrwx------ 1 root root 64 Sep 20 16:28 1 -> /dev/pts/9
lr-x------ 1 root root 64 Sep 20 16:35 10 -> pipe:[13794621]
lr-x------ 1 root root 64 Sep 20 16:35 11 -> pipe:[13798346]
lr-x------ 1 root root 64 Sep 20 16:35 12 -> pipe:[13798676]
lrwx------ 1 root root 64 Sep 20 16:11 2 -> /dev/pts/9
lr-x------ 1 root root 64 Sep 20 16:28 3 -> pipe:[13768065]
lr-x------ 1 root root 64 Sep 20 16:30 4 -> pipe:[13771924]
lr-x------ 1 root root 64 Sep 20 16:31 5 -> pipe:[13775769]
lr-x------ 1 root root 64 Sep 20 16:31 6 -> pipe:[13779550]
lr-x------ 1 root root 64 Sep 20 16:32 7 -> pipe:[13783394]
lr-x------ 1 root root 64 Sep 20 16:32 8 -> pipe:[13787296]
lr-x------ 1 root root 64 Sep 20 16:33 9 -> pipe:[13791022]

论坛徽章:
0
2 [报告]
发表于 2010-09-20 21:51 |只看该作者
自己顶个先。。。。

论坛徽章:
0
3 [报告]
发表于 2010-09-23 10:48 |只看该作者
脚本里还是慎用 “nohup” 吧!
估计你还把它放进循环里折腾

  1. man nohup
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP