通用java进程监控脚本_通用的进程监控脚本process_monitor.sh

建议将process_monitor.sh放到目录/usr/local/bin下,以方便使用。

eb105a6d909efca2ad6436a7f21c83c3.png

process_monitor.sh每隔2秒(由变量monitor_interval指定)检查一次,发现进程不存在时,立即启动。

通尝需要将process_monitor.sh放到crontab上,时间部分一般设置为1分钟执行一次,如:* * * * *。

如:

# 监控HDFS NameNode

* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_namenode" "/data/hadoop/sbin/hadoop-daemon.sh start namenode"

# 监控HDFS切换主备NameNode程序

* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_zkfc" "/data/hadoop/sbin/hadoop-daemon.sh start zkfc"

# 监控HDFS DataNode

* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_datanode" "/data/hadoop/sbin/hadoop-daemon.sh start datanode"

process_monitor.sh带两个参数,第一个参数是被监控的进程对象,process_monitor.sh依靠第二个参数重启被监控对象。process_cmdline="$1" # 需要监控的进程名,或完整的命令行,也可以为部分命令行

restart_script="$2"  # 用来重启进程的脚本,要求具有可执行权限

第一个参数又分两部分,第一个空格前的部分,和空格之后的部分。

第一部分为被监控对象的进程名称,对于java程序,进程名是java,而不是jar包的名称。

第二部分为参数部分,可有可无,但正是通过它来区分不同的被监控对象,对于java、shell程序等是必须的。(可以通过ps aux命令来确定进程名称和参数)

用户root,process_monitor.sh的日志文件为/tmp/process_monitor-root.log,

用户test,则process_monitor.sh的日志文件为/tmp/process_monitor-test.log,以此类推。

可以通过tail -f观察process_monitor.sh的日志,来了解process_monitor.sh的运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值