用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货:

#!/bin/sh
ps -fe|grep processString |grep -v grep
if [ $? -ne 0 ]
then
echo "start process....."
else
echo "runing....."
fi
#####
processString 表示进程特征字符串,能够查询到唯一进程的特征字符串
0表示存在的
$? -ne 0 不存在,$? -eq 0 存在

-------------------------------------------------------------

定时执行:

crontab -e
0 04,12,21 * * * /bin/bash /home/mysh/monitorprocess.sh
每天晚上4点,中午12点,晚上21点检测
0 4,12 * * *
分 时 日 月 周
* 04,12 * * * 这个是指4点和12点中每分钟执行一次
0 4,12 * * *  4点12点 第0分钟执行一次

详细内容请看本人百度经验: 用shell脚本监控进程是否存在 不存在则启动教程_百度经验
http://jingyan.baidu.com/article/59a015e3a3a404f795886542.html

=======================================

扩展相关知识:

shell的if else 语法以及大于,小于等逻辑表达式:

if ....; then

  ....

elif ....; then

  ....

else

  ....

fi

大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…   通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等          -r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真 
######################################################### 含条件选择的shell脚本
对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。基本的if条件命令选项有: - eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在
几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。 ################################################################## 判断文件是否存在 #!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" chenshuo@soufun.com <error.log
fi
=============================================

shell基本命令
(1)ps aux    显示系统全部进程,一行一个
(2)grep “abc” 从标准输入读取字符流,输出包含字符串“abc”的行
(3)grep -v "acb"   从标准输入读取字符流,输出不包含字符串“abc”的行
(4)wc -l        从标准输入读取字符流,输出行数

例如需要检测进程httpd是否存在,操作流程如下:
(1)读取系统所有进程
(2)判断包含指定进程名字的信息是否存在
通过管道连接,命令如下:

ps axu      |    grep "httpd"           |      grep -v "grep"    |      wc -l
所有进程-->获取包含“httpd”的行-->删除grep进程信息-->输出最后的行数

通过判断命令的执行结果是否为 0 ,可以知道进程是否存在。

脚本如下:

#!/bin/sh
while true;do
        count=`ps -ef|grep http|grep -v grep`
        if [ "$?" != "0" ];then
echo    ">>>>no httpd,run it"
service httpd start
else
echo ">>>>httpd is runing..."
fi
sleep 5
done

转载于:https://www.cnblogs.com/zdz8207/p/linux-shell-processString.html

用shell脚本监控进程是否存在 不存在则启动的实例相关推荐

  1. linux shell脚本监控进程崩溃自动重启

    linux shell脚本监控进程崩溃自动重启,由于目前有Python实现的通讯组件时不时会异常中断,在还没有找到问题的解决办法时先暂时用shell监控并自动重启处理. # ! /bin/shbase ...

  2. linux shell 进程监控脚本,shell脚本监控进程

    直接以实例示范如何使用shell脚本实现对待监测进程的监测: 背景:服务器需要确保sendFlowMail.py脚本的运行. 思路:故编写一个shell脚本,按周期(60秒)判断该进程是否在运行,若未 ...

  3. shell监控java接口服务_Linux系统下Java通过shell脚本监控重启服务

    简介 最近运维人员提出需求,增加一个运维页面, 查询当前的业务进程信息包括:进程名称.启动命令.启动时间.运行时间等,可以通过页面点击重启按钮,可以重启后端的一系列系统进程. 思路 java程序获取l ...

  4. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

  5. epel源mysql版本_linux增加epel源,yum安装nignx,脚本安装mysql服务端,shell脚本监控网站页面...

    epel是一种yum仓库,里面提供了更多.更丰富linux软件,但是,它不是默认yum仓库,我们需要手工添加这个yum源. 添加epel源 然后,找到fedora-epel, 在列表里找到:6serv ...

  6. 使用shell脚本监控共享池内存碎片

    使用shell脚本监控共享池内存碎片 环境 [monitor:/]#uname -a HP-UX monitor B.11.11 U 9000/785 2013813380 unlimited-use ...

  7. linux增加epel源,yum安装nignx,脚本安装mysql服务端,shell脚本监控网站页面

    epel是一种yum仓库,里面提供了更多.更丰富linux软件,但是,它不是默认yum仓库,我们需要手工添加这个yum源. 添加epel源 参考:http://freeloda.blog.51cto. ...

  8. shell脚本kill进程

    shell脚本kill进程 有需求要在shell脚本中kill进程:my_process 查到了这个方法 #!/bin/sh ID=`ps -ef | grep my_process | grep - ...

  9. linux怎么监控守护进程,linux shell脚本守护进程监控svn服务

    最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在 ...

最新文章

  1. 64位LINUX下hadoop2.2.0重新编译及安装步骤
  2. 边缘计算、雾计算、云计算区别几何?
  3. Linux什么时候在pc机上有一席之地
  4. 1-4 无监督学习(Unsupervised Learning)
  5. 【安全】phpldapadmin-1.2.3 界面使用
  6. [ML学习笔记] 回归分析(Regression Analysis)
  7. Jstorm到Flink 在今日头条的迁移实践
  8. ubuntu下caffe的FCN8模型训练
  9. python定时任务contrib_python定时任务的实现
  10. 离合器膜片弹簧的优化设计matlab,汽车离合器膜片弹簧结构优化设计(本科毕业论文设计)...
  11. SPSS--Friedman检验步骤
  12. 游戏感:虚拟感觉的游戏设计师指南——第七章 响应的测量方法
  13. 查看linux下eclipse进程,Linux环境安装Eclipse工具开发
  14. 正面管教php_正面管教之PHP(家长帮助家长)
  15. C/C++新手入门教程:傻瓜都会的VS2013使用教程,成为程序员的第一步
  16. 【跨境电商】5款Shopify应用,辅助你的在线商店运营
  17. PS快速调出天蓝色清新外景
  18. Linux/macOS 命令符列表
  19. 有哪些网站上传视频是不会插入广告的?
  20. 提高女性区块链采用率,真正实现普遍接受

热门文章

  1. GPU 加速下的图像视觉
  2. 从windows上传文件到linux,中文名乱码解决方法
  3. 第10章 嵌入式linux的调试技术
  4. Android项目Build报错Unable to execute dx(65535问题解决方案)
  5. 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致,很是郁闷,诡异...
  6. 第29节 专业英语1
  7. 解决JQuery AutoComplete在IE9下出错的问题
  8. 正交相机下实现滚轮按钮拖动,滚动滚轮缩放的功能
  9. iOS知识小集·NSNumber to NSString出错啦
  10. EM算法 大白话讲解