免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: gaochong
打印 上一主题 下一主题

根据日志文件监控进程(已初步解决,附named-nanny.pl供各位参考) [复制链接]

论坛徽章:
0
31 [报告]
发表于 2009-05-31 17:42 |只看该作者
你先换台服务器跑跑
首先排除是服务器的问题
进程挂了之后你先echo $?,看看退出状态是否正确
然后dmesg,看看有没有segfault之类的错误

论坛徽章:
0
32 [报告]
发表于 2009-05-31 19:23 |只看该作者

回复 #29 upkiller 的帖子

计算md5要把整个文件读一遍 不便宜

论坛徽章:
0
33 [报告]
发表于 2009-05-31 20:26 |只看该作者
原帖由 churchmice 于 2009-5-31 17:42 发表
你先换台服务器跑跑
首先排除是服务器的问题
进程挂了之后你先echo $?,看看退出状态是否正确
然后dmesg,看看有没有segfault之类的错误



2台富士通T5220都有这样的问题,而且机器都是正式的没有问题。


进程挂了之后你先echo $?,看看退出状态是否正确
然后dmesg,看看有没有segfault之类的错误


但我也不知道perl进程什么时候挂掉呀。
dmesg也没发现segfault之类的错误。



和perl执行方式有没有关系呢?
我是用 ./check.pl & 方式执行的。我没有用过nohup ./check.pl 这个方式。


谢谢!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
34 [报告]
发表于 2009-06-01 09:34 |只看该作者
原帖由 gaochong 于 2009-5-31 20:26 发表
和perl执行方式有没有关系呢?
我是用 ./check.pl & 方式执行的。我没有用过nohup ./check.pl 这个方式。

在此之后你有退出登录么?

论坛徽章:
0
35 [报告]
发表于 2009-06-01 11:01 |只看该作者

回复 #34 MMMIX 的帖子

./check.pl & 执行后,有退出登录过。

过1个小时perl进程还在的,但过2、3个小时perl进程就没有了。

也是不太复杂的代码,想不明白什么原因。

论坛徽章:
0
36 [报告]
发表于 2009-06-01 12:38 |只看该作者
建议你对HUP 信号做一些处理
./check.pl >error.log 2>&1 &

进程退出后看一下 error.log

论坛徽章:
0
37 [报告]
发表于 2009-06-01 12:44 |只看该作者
原帖由 fangdingj 于 2009-6-1 12:38 发表
建议你对HUP 信号做一些处理
./check.pl >error.log 2>&1 &

进程退出后看一下 error.log





谢谢,我现在用 "nohup ./check.pl &” 这个方式在跑了,等下班前看看会不会退出。


你放的方法还会测试的,谢谢各位!

论坛徽章:
0
38 [报告]
发表于 2009-06-01 15:12 |只看该作者
非得在后台跑么? 有必要5秒钟耍一次么?cronjob不行么?
另外一定要用log来判断service是否挂掉么? log不刷新不一定就代表service挂了吧?
如果是网络服务可以用socket检测service的状态。

论坛徽章:
0
39 [报告]
发表于 2009-06-01 16:18 |只看该作者
原帖由 tinyhong 于 2009-6-1 15:12 发表
非得在后台跑么? 有必要5秒钟耍一次么?cronjob不行么?
另外一定要用log来判断service是否挂掉么? log不刷新不一定就代表service挂了吧?
如果是网络服务可以用socket检测service的状态。




当然还有很多其他判断方法,比如比较文件大小、还有一位楼主说的检测md5sum,但性质是一样的(就是一个if语句)。

我这是radius服务,log不刷新就一定是service挂了。


不知道能不能用socket检测,我目前的水平还写不出这个代码来。


你有更好的办法?有例子吗?最好参考一下。

论坛徽章:
0
40 [报告]
发表于 2009-06-01 23:31 |只看该作者
这个么,我们的情况很类似。

实际进程存在,端口不活,日志照走。

我们用的是monit,一个c写的进程监控。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP