免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
41 [报告]
发表于 2009-06-02 09:17 |只看该作者
原帖由 zombie 于 2009-6-1 23:31 发表
这个么,我们的情况很类似。

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

我们用的是monit,一个c写的进程监控。


不管C还是Perl,思路还是一样的。

我是昨天17:21启动的perl进程:nohup ./check.pl &,到现在还没丢。估计是nohup的原因,但还不确定,再跑几天看。



-bash-3.00$ ps -ef | grep perl | grep -v grep
    gc 25683     1   0 17:21:14 ?           0:01 /usr/bin/perl -w ./check.pl

论坛徽章:
0
42 [报告]
发表于 2009-06-02 14:55 |只看该作者
终端退出,终端下运行的进程会收到 SIGHUP信号,默认情况下结束进程,nohup 只是忽略HUP信号而已,在程序中处理HUP信号,效果一样

论坛徽章:
0
43 [报告]
发表于 2009-06-02 15:50 |只看该作者

回复 #42 fangdingj 的帖子

什么意思?

我用"./check.pl &“执行后,退出,2个小时内再登录perl进程还是在的呢。

论坛徽章:
0
44 [报告]
发表于 2009-06-09 22:52 |只看该作者
我是用 nohup ./check.pl &运行的,已经跑在正式的服务器上。已经跑了有6个钟头没有发现问题,按理说不应该有问题了。



我又用上了crontab :
* * * * * daemon.sh

检测check.pl有没有运行。
不知道crontab是不是多此一举?

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

回复 #42 fangdingj 的帖子

#!/usr/bin/perl

#

# Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")

# Copyright (C) 2000, 2001  Internet Software Consortium.

#

# Permission to use, copy, modify, and/or distribute this software for any

# purpose with or without fee is hereby granted, provided that the above

# copyright notice and this permission notice appear in all copies.

#

# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH

# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY

# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,

# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM

# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE

# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR

# PERFORMANCE OF THIS SOFTWARE.


# $Id: nanny.pl,v 1.11 2007/06/19 23:47:07 tbox Exp $


# A simple nanny to make sure named stays running.


$pid_file_location = '/var/run/named.pid';
$nameserver_location = 'localhost';
$dig_program = 'dig';
$named_program =  'named';

fork() && exit();

for (;;) {
    $pid = 0;
    open(FILE, $pid_file_location) || goto restart;
    $pid = <FILE>;
    close(FILE);
    chomp($pid);

    $res = kill 0, $pid;

    goto restart if ($res == 0);

    $dig_command =
           "$dig_program +short . \@$nameserver_location > /dev/null";
    $return = system($dig_command);
    goto restart if ($return == 9);

    sleep 30;
    next;

restart:
    if ($pid != 0) {
        kill 15, $pid;
        sleep 30;
    }
    system ($named_program);
    sleep 120;
}


我就是参考nanny.pl的。

而且这个脚本是就是用 nanny.pl & ,已经跑了快一年了没问题。

唯一的区别在于:         fork() && exit();

还在看这2个函数的作用。也希望各位指教。

[ 本帖最后由 gaochong 于 2009-6-11 13:32 编辑 ]

论坛徽章:
0
46 [报告]
发表于 2009-06-11 14:44 |只看该作者
$dig_command =
               "$dig_program +short . \@$nameserver_location > /dev/null";
        $return = system($dig_command);
        goto restart if ($return == 9);



$return怎么会==9呢?这样dig结果是空的。

没想明白。

论坛徽章:
0
47 [报告]
发表于 2009-06-19 15:33 |只看该作者
nohup ./check.pl &
从9号开始运行到现在,一切正常。



想到tomcat进程异常情况(进程是在的,端口也是通的,但页面打开空白,不知各位有没有遇到过),应该如何来监控呢?

在此请教各位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP