由于最近要负责一个项目的维护工作,这个服务器总是出现段错误,由于时间比较紧张,我就写了一个简单的重启脚本,先让服务器不至于总是dump掉。

废话不多说,先上代码:

#!/bin/sh CheckProcess() {if [ "$1" = "" ];then return 1fiPROCESS_NUM=$(ps -ef|grep "$1"|grep -v "grep"|wc -l)if [ "$PROCESS_NUM" = "1" ]; # test not workthenreturn 0elsereturn 1fi } while [ 1 ]; doCheckProcess "./test"CheckQQ_RET=$?if [ "$CheckQQ_RET" = "0" ];thenkillall -9 testexec ./test &echo "restart test again!"fisleep 1 done

脚本比较简单,主要参考了http://www.linuxdiyf.com/viewarticle.php?id=20338 。

shell脚本对程序的格式要求相当严格,这个在编程的过程中要特别注意。

另外,

1. PROCESS_NUM=$(...) 也可以用PROCESS_NUM=' ... ' ;

2.判断条件中的"$CheckQQ_RET" = "1" 也可以改成 $CheckQQ_RET -eq 1。

由于初学shell,花了一下午时间把这个程序调通了,服务器总算能跑起来了,呵呵。

除此之外,为了实现同步,有的时候需要定时重启程序。下面给出的一段代码能实现两个功能:

1. 程序崩溃了,重启;

2. 半小时自动重启程序。

#!/bin/shexec ./test&
while [ 1 ]; doPROCESS_NUM=$(ps ax|grep test | grep -v "gedit" | grep -v " grep" | wc -l)if [ "$PROCESS_NUM" = "0" ]thenkillall -9 testexec ./test&fi$a=$($a+10)if ["$a" = "1800"];thena=0killall -9 testexec ./test&fisleep 10
done

linux下用脚本语言开发自动重启程序相关推荐

  1. linux下的C语言开发

    在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品.当然,linux操作系统本身对C语言的支持也是相当到位的.作为一个真正 ...

  2. 第4章 Linux下的C语言开发基础

    第4章 Linux下的C语言开发基础 4.1 C语言开发的基本步骤 C语言源程序开发的基本步骤如下: 根据项目需求划分功能模块 编辑.利用文本编辑器vi或gedit编写C源程序并保存,文件的后缀为.c ...

  3. linux系统最好的c类语言开发软件,Linux下基于C 语言开发即时通信软件.doc

    Linux下基于C 语言开发即时通信软件 Linux下基于C++语言开发即时通信软件 关键词:聊天软件 文字聊天 Linux平台 C/S架构ICE中间件 Linux-based instant mes ...

  4. swift 在linux系统,Linux下搭建Swift语言开发学习环境

    介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍swift编译器swiftc的使用: 1.序言 周三12月4日凌晨1点多看到苹果正式开源了Swift,国 ...

  5. Linux下用C语言最基本的程序开发与调试

    1.建一个目录 2.写代码,建一个hello.c文件 代码: view plaincopy to clipboardprint? #include "stdio.h" main() ...

  6. linux下做c语言开发

    在开始之前,首先要说明的是,linux开发程序最主要的编辑器是vi/vim编辑器,当然还有emacs,gedit,只是vi/vim的用户实在是压倒性的多数,原因就是,它在编辑效率上的战胜了其他对手.v ...

  7. 开始在linux下做c语言开发

     本篇文章旨在介绍如何开始在linux下面进行C语言程序设计,以及如何使用程序设计及调试工具进行编写C程序.学会使用gcc及gdb等工具进行linux下的c编写和调试. 在开始之前,首先要说明的是 ...

  8. linux下的C语言开发 GDB的例子

    在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品.当然,linux操作系统本身对C语言的支持也是相当到位的.作为一个真正 ...

  9. linux下的C语言开发(开篇)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分我认为是 ...

最新文章

  1. Android各种各样的Drawable-更新中
  2. net类库中发送电子邮件的方法总结
  3. 乔布斯诞辰64周年 库克发文纪念:我们每一天都怀念他
  4. oracle中特殊字符处理
  5. 数据库中的完整性约束及实例
  6. MachineLearning Exercise 7 : K-means Clustering and Principle Component Analysis
  7. python爬虫常用模块介绍(1)_python爬虫常用模块介绍(1)
  8. [地图SkyLine二次开发]框架(2)
  9. matlab-plot绘制点线图
  10. AirDisk存宝有没有迅雷下载功能?
  11. android 拍照水印日期,胶片日期水印app安卓版-胶片日期水印手机版预约v1.0-发卡屋...
  12. Cesium与STK中的天空盒子(skybox)
  13. Windows禁用端口(445端口为例)
  14. Android中开启子线程的方法和应用场景
  15. php学习基础篇之基础函数(数学 日期 字符串)、php循环流程控制
  16. @kubernetes(k8s)数据持久化Volume存储卷(emptyDir、hostPath、NFS、StorageClass)
  17. Java中对图片进行简单加密和解密
  18. web.xml提示the processing instruction target matching [xX][mM][lL] is not allowed
  19. 计算机中丢失msvcp40.dll,电脑丢失msvcp140.dll的解决方法 电脑缺少msvcp140.dll怎么解决...
  20. Docker 使用镜像

热门文章

  1. Linux之特殊的环境变量IFS以及如何删除带有空格的目录
  2. C/C++内存问题检查利器—Purify (二)
  3. 课堂练习 组合数据练习
  4. Linux-环境变量的设置和查看
  5. Qt的quit(),exit()以及close()事件捕获
  6. js中substr与substring的差别
  7. KVC的使用(对一个对象的成员变量进行操作(赋值/取值))
  8. iOS:×××送(二)----pem证书的生成
  9. Jmeter_模板设置默认请求参数
  10. Kotlin定义静态变量、静态方法