linux下用脚本语言开发自动重启程序
由于最近要负责一个项目的维护工作,这个服务器总是出现段错误,由于时间比较紧张,我就写了一个简单的重启脚本,先让服务器不至于总是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下用脚本语言开发自动重启程序相关推荐
- linux下的C语言开发
在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品.当然,linux操作系统本身对C语言的支持也是相当到位的.作为一个真正 ...
- 第4章 Linux下的C语言开发基础
第4章 Linux下的C语言开发基础 4.1 C语言开发的基本步骤 C语言源程序开发的基本步骤如下: 根据项目需求划分功能模块 编辑.利用文本编辑器vi或gedit编写C源程序并保存,文件的后缀为.c ...
- linux系统最好的c类语言开发软件,Linux下基于C 语言开发即时通信软件.doc
Linux下基于C 语言开发即时通信软件 Linux下基于C++语言开发即时通信软件 关键词:聊天软件 文字聊天 Linux平台 C/S架构ICE中间件 Linux-based instant mes ...
- swift 在linux系统,Linux下搭建Swift语言开发学习环境
介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍swift编译器swiftc的使用: 1.序言 周三12月4日凌晨1点多看到苹果正式开源了Swift,国 ...
- Linux下用C语言最基本的程序开发与调试
1.建一个目录 2.写代码,建一个hello.c文件 代码: view plaincopy to clipboardprint? #include "stdio.h" main() ...
- linux下做c语言开发
在开始之前,首先要说明的是,linux开发程序最主要的编辑器是vi/vim编辑器,当然还有emacs,gedit,只是vi/vim的用户实在是压倒性的多数,原因就是,它在编辑效率上的战胜了其他对手.v ...
- 开始在linux下做c语言开发
本篇文章旨在介绍如何开始在linux下面进行C语言程序设计,以及如何使用程序设计及调试工具进行编写C程序.学会使用gcc及gdb等工具进行linux下的c编写和调试. 在开始之前,首先要说明的是 ...
- linux下的C语言开发 GDB的例子
在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品.当然,linux操作系统本身对C语言的支持也是相当到位的.作为一个真正 ...
- linux下的C语言开发(开篇)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分我认为是 ...
最新文章
- Android各种各样的Drawable-更新中
- net类库中发送电子邮件的方法总结
- 乔布斯诞辰64周年 库克发文纪念:我们每一天都怀念他
- oracle中特殊字符处理
- 数据库中的完整性约束及实例
- MachineLearning Exercise 7 : K-means Clustering and Principle Component Analysis
- python爬虫常用模块介绍(1)_python爬虫常用模块介绍(1)
- [地图SkyLine二次开发]框架(2)
- matlab-plot绘制点线图
- AirDisk存宝有没有迅雷下载功能?
- android 拍照水印日期,胶片日期水印app安卓版-胶片日期水印手机版预约v1.0-发卡屋...
- Cesium与STK中的天空盒子(skybox)
- Windows禁用端口(445端口为例)
- Android中开启子线程的方法和应用场景
- php学习基础篇之基础函数(数学 日期 字符串)、php循环流程控制
- @kubernetes(k8s)数据持久化Volume存储卷(emptyDir、hostPath、NFS、StorageClass)
- Java中对图片进行简单加密和解密
- web.xml提示the processing instruction target matching [xX][mM][lL] is not allowed
- 计算机中丢失msvcp40.dll,电脑丢失msvcp140.dll的解决方法 电脑缺少msvcp140.dll怎么解决...
- Docker 使用镜像
热门文章
- Linux之特殊的环境变量IFS以及如何删除带有空格的目录
- C/C++内存问题检查利器—Purify (二)
- 课堂练习 组合数据练习
- Linux-环境变量的设置和查看
- Qt的quit(),exit()以及close()事件捕获
- js中substr与substring的差别
- KVC的使用(对一个对象的成员变量进行操作(赋值/取值))
- iOS:×××送(二)----pem证书的生成
- Jmeter_模板设置默认请求参数
- Kotlin定义静态变量、静态方法