通用的进程监控重拉起bash脚本
来源:互联网 发布:个人域名备案网站名称 编辑:程序博客网 时间:2024/05/13 05:21
process_monitor.zip
#!/bin/sh
# http://code.google.com/p/mooon
# 进程监控脚本,当指定进程不存在时,执行重启脚本将它拉起
# 特色:
# 1.本监控脚本可重复执行,它会自动做互斥,保证总是只有一个监控脚本进程存在
# 2.互斥不仅依据监控脚本文件名,而且包含了它的命令行参数,只有整体相同时互斥才生效
# 3.对于被监控的进程,可以只指定进程名,也可以包含命令行参数
# 4.不管是监控脚本还是被监控进程,总是只针对属于当前用户下的进程
# 需要指定个数的命令行参数
# 参数1:被监控的进程名
# 参数2:重启被监控进程的脚本
if test $# -ne 2; then
printf "\033[1;33musage: $0 process_cmdline restart_script\033[m\n"
exit 1
fi
process_cmdline="$1" # 需要监控的进程名,或完整的命令行,也可以为部分命令行
restart_script="$2" # 用来重启进程的脚本,要求具有可执行权限
monitor_interval=10 # 定时检测时间间隔,单位为秒
cur_user=`whoami` # 执行本监控脚本的用户名
# 取指定网卡上的IP地址
#eth=1&&netstat -ie|awk -F'[: ]' 'begin{found=0;} { if (match($0,"eth'"$eth"'")) found=1; else if ((1==found) && match($0,"eth")) found=0; if ((1==found) && match($0,"inet addr:") && match($0,"Bcast:")) print $13; }'
# 下面这段脚本,用来阻止多个监控脚本进程出现
uid=`id -u $cur_user`
self_name=`basename $0`
self_cmdline="$0 $*"
process_name=$(basename `echo "$process_cmdline"|cut -d" " -f1`)
# 以死循环方式,定时检测指定的进程是否存在
while true; do
self_count=`ps -C $self_name h -o euser,args| awk 'BEGIN { num=0; } { if (($1==uid || $1==cur_user) && match($0, self_cmdline)) {++num;}} END { printf("%d",num); }' uid=$uid cur_user=$cur_user self_cmdline="$self_cmdline"`
if test $self_count -gt 2; then
# 如果监控脚本已经运行,则退出不重复运行
printf "\033[0;32;31m$0 is running[$self_count], current user is $cur_user.\033[m\n"
exit
fi
# 检查被监控的进程是否存在,如果不存在则重启
process_count=`ps -C $process_name h -o euser,args| awk 'BEGIN { num=0; } { if (($1==uid || $1==cur_user) && match($0, process_cmdline)) {++num;}} END { printf("%d",num); }' uid=$uid cur_user=$cur_user process_cmdline="$process_cmdline"`
if test $process_count -lt 1; then
# 执行重启脚本,要求这个脚本能够将指定的进程拉起来
printf "\033[0;32;34mrestart \"$process_cmdline\"\033[m\n"
sh -c "$restart_script" # 注意一定要以“sh -c”方式执行
fi
sleep $monitor_interval
done
0
上一篇:usrp之 GRC文件如何用的?
下一篇:Erict调试python的sys.argv下标问题
相关热门文章
- linux GPIO驱动
- IT男:好奶光明造 营养品质高...
- fanotify 监控文件系统
- ARM汇编指令集之——移位指令...
- 涂抹MySQL开源运动与开源软件M...
- 承接自动化测试培训、外包、实...
- Solaris PowerTOP 1.0 发布
- For STKMonitor
- busybox的httpd使用CGI脚本(Bu...
- 项目小体会
- 系统提供的库函数存在内存泄漏...
- 初学UNIX环境高级编程的,关于...
- chinaunix博客什么时候可以设...
- 一个访问量较大网站的服务器。...
- 收音机驱动与v4l2架构的关系,...
给主人留下些什么吧!~~
评论热议
0 0
- 通用的进程监控重拉起bash脚本
- 通用的进程监控重拉起bash脚本
- shell 代码 进程监控脚本,拉起core dump的服务器进程,以维持服务稳定
- 通用的停止进程bash脚本
- Shell脚本实现进程的自动拉起
- Shell脚本监控、拉起Nimbus和Supervisor进程
- shell脚本实现监控某个进程意外停止后拉起进程
- 通用的进程监控脚本process_monitor.sh使用方法
- 使用Bash脚本进行进程性能监控
- Linux 进程自动监控bash shell脚本 监控VPS服务器负载/CPU及内存占用 自动重启
- linux进程监控重启shell脚本
- 监控进程的shell脚本
- 简单的进程监控脚本
- bash脚本: 监控Tomcat
- 用Shell脚本定时监控Linux下的进程状态并自动重启
- [php-fpm自动拉起]从nginx的502错误出发谈锁机制在服务器自动监控脚本中的应用
- 进程的重启脚本
- 使用supervisor实现程序从服务目录拉到发布目录并实时监控拉起死掉的程序进程
- usrp N210 牛刀小试
- usrp N210 uhd_fft 例程运行
- usrp 升级fpga引发的问题
- usrp 升级fpga引发的问题
- usrp之 GRC文件如何用的?
- 通用的进程监控重拉起bash脚本
- Erict调试python的sys.argv下标问题
- 巧用backtrace系列函数
- route: SIOCADDRT: File exists 问题
- dns与wins的区别
- FPGA xps_intc EDK中断IP核
- boost库的调用ld问题
- boost库的调用ld问题[已解]
- boost 1.51.0移植到ARM S3C6410成功运行
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
爱康健康体检中心
ikang
美年
kang
美年体检
美年大健康体检
体检查询结果
爱之康
爱氏康
爱齿康
爱建证券超强版下载
爱建证券手机版下载
爱建股份股票
600643股吧
爱建股份股吧
爱建股份
600643
爱建集团
爱建公寓
爱建证券超强版
爱建证券有限责任公司
爱建信托怎么样
爱建证券电话
爱建信托有限责任公司
爱建顾园
爱建集团股吧
爱式图p
女汉子真爱式免费观看完整
唐家小猫 爱式
爱弹幕资源
爱弹幕弹幕网站
爱弹吉他学院
爱弹幕idanmu
一生所爱指弹简单版
3d爱弹幕
爱的罗曼斯怎么弹
如何进入爱弹幕资源区
爱弹幕下载
爱弹幕资源51页
爱弹幕 3d
一生所爱指弹独奏谱