注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曾国藩的博客

 
 
 

日志

 
 

用shell脚本监视进程,崩溃挂掉后自动重启  

2015-08-25 15:27:01|  分类: 脚本/跳板/效率/ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://blog.chinaunix.net/uid-116213-id-159156.html

如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务程序时经常会碰到这样的问题。在Linux系统中,强大的shell就可以很灵活的处理这样的事务。

下面的shell通过一个while-do循环,用ps -ef|grep 检查loader进程是否正在运行,如果没有运行,则启动,这样就保证了崩溃挂掉的进程重新被及时启动。

必须注意两点:

1、ps |grep 一个进程时必须加上其路劲,否则容易grep到错误的结果;

2、必须用 -v 从结果中去除grep命令自身,否则结果非空。

#!/bin/sh
#
=====================
#
YuanHui.HE
#
khler@163.com
#
=====================
while :
do
  echo 
"Current DIR is " $PWD
  stillRunning
=$(ps -ef |grep "$PWD/loader" |grep -"grep")
  
if [ "$stillRunning" ] ; then
    echo 
"TWS service was already started by another way" 
    echo 
"Kill it and then startup by this shell, other wise this shell will loop out this message annoyingly" 
    kill 
-9 $pidof $PWD/loader
  
else
    echo 
"TWS service was not started" 
    echo 
"Starting service ..." 
    $PWD
/loader
    echo 
"TWS service was exited!" 
  fi
  sleep 
10
done

如果启动此shell时发现进程已经存在,说明以别的方式启动了进程而不是此shell,那么它会持续提醒找到进程,解决办法是,要么只用此shell启动服务,要么一经发现以其他方式启动的服务即kill掉,上面的语句就是这么干的:

kill -9 $pidof $PWD/loader

  评论这张
 
阅读(120)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018