当前位置:  技术问答>linux和unix

请教:一个让程序自动重启的脚本,但是一直出错,请高手帮忙分析下

    来源: 互联网  发布时间:2016-07-12

    本文导语:  我刚开始学shell编程,想做一个脚本,就是程序被dump掉后,用脚本把它重新启动,并时刻监视程序进程是否存在,若再被dump掉后,再把程序启动起来。 我用的下面这个脚本,请问下  CheckQQ_RET = $?是什么意思? 运...

我刚开始学shell编程,想做一个脚本,就是程序被dump掉后,用脚本把它重新启动,并时刻监视程序进程是否存在,若再被dump掉后,再把程序启动起来。

我用的下面这个脚本,请问下  CheckQQ_RET = $?是什么意思? 运行是提示command not found

自动重启脚本



假定需要实现重启的程序名为 test ,我们这里通过判断进程数目来判断程序是否正常。 






test ,我们这里通过判断进程数目来判断程序是否正常。 

ps -ef | grep "$1" | grep -v "grep" | wc –l 是获取$1(本例中为test)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔1秒检查一次系统中的指定程序的进程数。 




代码如下:
    脚本check





#!/bin/sh
#------------------------------------------------------------------------------# 函数: CheckProcess# 功能: 检查一个进程是否存在# 参数: $1 --- 要检查的进程名称# 返回: 如果存在返回0, 否则返回1.#------------------------------------------------------------------------------CheckProcess(){  # 检查输入的参数是否有效  if [ "$1" = "" ];  then     return 1  fi    #$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动  PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`   if [ $PROCESS_NUM -eq 1 ];  then     return 0  else     return 1  fi}
# 检查test实例是否已经存在while [ 1 ] ; do CheckProcess "test" CheckQQ_RET=$? if [ $CheckQQ_RET -eq 1 ]; then# 杀死所有test进程,可换任意你需要执行的操作   killall -9 test   exec ./test &   fi sleep 1done
 



    脚本start:
     加入limit coredumpsize 102400,设置core file的大小,一旦程序Core Dump,有迹可寻。在该脚本中后台执行check脚本,可以省去很多麻烦,



#!/bin/cshlimit coredumpsize 102400
./check & 
 

|
不要在脚本里面循环,把脚本叫到cron中定时执行就可以

    
 
 

您可能感兴趣的文章:

  • 请教下我的eth0为什么设置后重启会失败?
  • 请教急:shell怎么实现进程监控,重启进程
  • 请教:solaris经常自动重启或者死机,请问如何查找问题?在线等。
  • 请教:如何只让root用户有重启机器的权限
  • 请教一个问题。如何用Java实现远程控制,一台机器控制另一台,简单的如重启。给个详细的帮助。谢谢。。。
  • 请教一个关于重启时,linux 添加自动关闭数据库服务器的问题
  • Fedora 7 下 root用户登录后设置了JAVA_HOME, CLASSPATH等参数,可是总在重启后 终端命令行报错bash:JAVA_HOME:command not found,请教原因!
  • 请教一个问题,CRONTAB执行脚本和SSH登陆后调用脚本有什么不同?
  • 请教花括号在脚本中的用法的含义
  • 请教shell脚本启动程序
  • 高分请教关于Shell脚本执行中断问题?
  • 请教关于多个shell脚本后台运行的问题!
  • 请教:这个脚本文件为什么不随机启动
  • 请教一个脚本编写时的问题
  • 请教:如何写一个自动以当前日期建目录的脚本
  • 请教shell脚本中ls -la >ls.log <<!,中的"<<!"是什么意思?
  • 请教一个查找字符的脚本。急用!!
  • 请教两段shell脚本的不同
  • sh 脚本:请教实现非root退出
  • 请教高手,一个简单的shell脚本问题???
  • 请教斑竹,在linux下怎么执行位于其他机器上的脚本
  • 请教一个shell脚本的问题!
  • 请教一个SH脚本的写法(在线等)
  • 请教各位一个关于linux脚本的问题
  • 请教各位,shell脚本获取当前日期是本年的第几周?
  • 请教关于shell脚本的问题
  • 请教shell脚本问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教busybox make出错 回者有分
  • 编译JSP文件出错,这可能是什么问题,请教高手!
  • 在RedHat9中添加用户useradd老是出错 请教一下
  • 删除文件出错,请教!
  • 请教:在别的系统上运行正常,但是在 SCO 5.9 上就出错了
  • 请教为什么在C++编译通过并实现的程序,在linux下就会出错
  • 安装RH后引导出错,请教
  • 请教高手 mkfs.ext2 出错
  • 新内核引导时出错。请教。
  • 请教高手(100分):关于B/S中的中文输入法问题。用微软的智能ABC在jTextArea老出错
  • 请教:写守护进程函数时出错!
  • 请教一个关于Makefile的问题。提示出错:make: *** 没有规则可以创建“ioctl”需要的目标“gcc”。 停止。
  • 我用的是atmel一个成熟的开发板。有一个触摸屏驱动程序,以<M>的方式编译为模块,编译时提示某个外部函数没有定义,但如果以<*>的方式编译进内核,则不会出错。请教下可能是什么原因?
  • 请教:make ARCH=arm CROSS_COMPILE=arm-linu- menuconfig出错
  • 请教,extern使用出错(很小的程序)
  • 请教为什么在C++编译通过并实现的程序,在linux下就会出错(解决马上给分啊!谢谢)
  • urb传输过程出错,初学,不知问题在哪,请教!
  • 编写ARM上Linux驱动程序出错,请教高手要写些什么结构
  • 一个EJB例子运行出错,100分请教!一定给分!
  • 移植opencv2.0时编译出错,请教如何修改。
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3