远方

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

源码下载:https://github.com/eyjian/libmooon/blob/master/shell/process_monitor.sh

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

Coder

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的运行。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:2605
  • 页面总数:1
  • 分类总数:21
  • 标签总数:668
  • 评论总数:6
  • 浏览总数:3464920
Archives
Copyright © 2017-2023 WWW.MY889.COM All Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号-1
Sitemap XML