#!/bin/sh
#filename: checkProcess.sh
#示例:每分钟检测httpd是否在运行,不在运行则重启
#crontab -e
# 加入:*/ * * * * checkProcess.sh "httpd" "/etc/init.d/httpd start"
#-------------------------------
# 函数: checkProcess
# 功能: 检查一个进程是否存在
# 参数: $ --- 要检查的进程名称(可以加入路径,增强唯一性)
# 返回: 如果存在返回1, 否则返回0.
#------------------------------- checkProcess()
{
# 检查输入的参数是否有效
if [ "$1" = "" ]
then
return
fi #$PROCESS_NUM获取指定进程名的数目(过滤文件名 checkProcess.sh)
#【此处做了修订,加入grep -v "checkProcess.sh",对应修改IS_RUNNING_NUM= 为 IS_RUNNING_NUM=】
PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | grep -v "checkProcess.sh" | wc -l` #判断进程正在运行的数量
IS_RUNNING_NUM= echo "Current Process num:$PROCESS_NUM" #实际进程数PROCESS_NUM小于判断为运行中的数IS_RUNNING_NUM,表示有错误,需要重新启动
if [ $PROCESS_NUM -lt $IS_RUNNING_NUM ];
then
return
else
return
fi
} #如果参数1或者参数2为空,提示用法
if [ -z "$1" -o -z "$2" ]
then
echo "Usage: checkProcess.sh process execCommand"
echo 'Example: checkProcess.sh "httpd" "/etc/init.d/httpd start"'
exit
fi # 检查test实例是否已经存在
# checkProcess.sh "httpd" "/etc/init.d/httpd start"
checkProcess $
checkResult=$?
if [ $checkResult -eq ];
then
# 杀死所有test进程,可换任意你需要执行的操作
killall - $
echo "Now execute: $2"
# 在后台执行程序
exec $ &
else
echo "Process is running"
fi crontab示例
#启动apache服务
*/ * * * * /root/shell/checkProcess.sh "/usr/sbin/httpd" "/root/shell/httpdstart.sh"
#启动mysql服务
*/ * * * * /root/shell/checkProcess.sh "/usr/sbin/mysqld" "/root/shell/mysqldstart.sh"
这里为了方便(有些服务的启动命令比较长),把启动代码封装进了shell脚本中,读者可以直接写启动命令 httpdstart.sh脚本如下:
#!/bin/bash
/usr/sbin/httpd -k start

shell+crontab 实时服务进程监控重启的更多相关文章

  1. Tomcat集群 Nginx负载均衡 shell脚本实时监控Nginx

    第一步,安装Tomcat 系统环境:Centos7 第1步:下载tomcat安装包 tomcat官网:https://tomcat.apache.org/ 第2步:安装包上传至linux中 第3步:下 ...

  2. Linux系统性能统计工具Sar和实时系统性能监控脚本

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情 ...

  3. 网络分析shell脚本(实时流量+连接统计)

    介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下.脚本运行效果截图: 此脚本包含的功能有: 1.实时监控任意网卡的流量 2.统计10秒内平均流量 3.统计 ...

  4. .NetCore使用skywalking实现实时性能监控

    一.简介 很久之前写了一篇 <.Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控>关于NetCore性能监控的文章,使用Inf ...

  5. shell基础语法以及监控进程不存在重新启动

    转码 # dos2unix ./test.sh 权限 # chmod a+x ./test.sh 语法变量var="111"echo $varecho ${var} 运算no1=4 ...

  6. [Asp.net]SignalR实现实时日志监控

    摘要 昨天吃饭的时候,突然想起来一个好玩的事,如果能有个页面可以实时的监控网站或者其他类型的程序的日志,其实也不错.当然,网上也有很多成熟的类似的监控系统.就想着如果通过.net该如何实现?所以就在想 ...

  7. SignalR实现实时日志监控

    .net SignalR实现实时日志监控   摘要 昨天吃饭的时候,突然想起来一个好玩的事,如果能有个页面可以实时的监控网站或者其他类型的程序的日志,其实也不错.当然,网上也有很多成熟的类似的监控系统 ...

  8. Linux进程实时IO监控iotop命令详解

    介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况 ...

  9. ASP.NET Core之跨平台的实时性能监控(2.健康检查)

    前言 上篇我们讲了如何使用App Metrics 做一个简单的APM监控,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内容. 没看过上篇的,请移步:ASP.NET Core之跨平台的实时性 ...

随机推荐

  1. python gun readline

    https://github.com/ludwigschwardt/python-gnureadline

  2. Ajax工作原理和原生JS的ajax封装

    前言: 之所以用ajax作为博客的开篇,是因为无论从ajax的出现还是从它的作用上来说,ajax对于前端无疑是意义重大的.甚至可以说,是ajax带来了前端这个行业.当然,历史并不能说明当下,曾经的辉煌 ...

  3. 40 Questions to test your skill in Python for Data Science

    Comes from: https://www.analyticsvidhya.com/blog/2017/05/questions-python-for-data-science/ Python i ...

  4. msyql中子查询IN,EXISTS,ANY,ALL,SOME,UNION介绍

    1.ANY关键字 假设any内部的查询语句返回的结果个数是三个,如:result1,result2,result3,那么, select ...from ... where a > any(.. ...

  5. java的static块及相关内容

    原文地址:http://blog.csdn.NET/lubiaopan/article/details/4802430     感谢原作者! static{}(即static块),会在类被加载的时候执 ...

  6. Python爬虫入门二之爬虫基础了解

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

  7. 导入excel精华版

    //须引入 NPOI, NPOI.OOXML, NPOI.Openxml4Net, NPOI.OpenxmlFormats等程序集 自己去下载吧 NPOI组件很好用不可能下不到自己去吧,通常去百度网盘 ...

  8. Part2_lesson4---ARM寻址方式

    所谓寻址方式就是处理器根据指令中给出的信息来找到指令所需操作数的方式. 1.立即数寻址 ADD R0,R0,#0x3f; R0<-R0+0x3f 在以上指令中,第二个源操作数即为立即数,要求以“ ...

  9. Ubuntu14.04下redis安装 配置, redis主从配置

    1.到官网下载redis源码包 wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压 并 编译 .tar.gz cd redis ...

  10. (转)通过扩展让ASP.NET Web API支持JSONP

    原文地址:http://www.cnblogs.com/artech/p/3460544.html 同源策略(Same Origin Policy)的存在导致了“源”自A的脚本只能操作“同源”页面的D ...