烈火建站学院(LieHuo.Net)转载无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美梦中,被电话惊醒的惨痛经历,手忙脚乱把服务器重新启动,第二天上班还要被老板一顿狠批。所以,程序发生错误时自动重启变得很重要。这里集中讨论 linux 实现自动重启程序的方法。

linux 下实现程序的自动重启有很多方法,这里我们介绍的是通过自己写脚本来实现。

自动重启脚本,假定需要实现重启的程序名为 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 “CheckQQ_RET”

if [ $CheckQQ_RET != 4 ];

then

# 杀死所有test进程,可换任意你需要执行的操作

killall -9 test

exec ./test &

fi

sleep 1

done

脚本start:

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

linux自动重启电脑脚本,linux下通过脚本实现自动重启程序的方法相关推荐

  1. Mac系统关闭重启电脑后「重新打开应用及其窗口」功能的方法

    大家在使用Mac电脑时可能会遇到,当您登录 Mac 或打开某个 App 时,App 及其窗口可能会自动重新打开.面对这种现象我们该如何解决呢?下面小编就给大家详细介绍一下控制此现象的方法,希望对大家有 ...

  2. linux开机自启动python脚本_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  3. 如何在不重启电脑的情况下修改主机名

    首先修改 /etc/hostname sudo vim /etc/hostname 将hostname里的内容改为xxxx-PC,这样下次启动电脑之后,主机名就修改了. 如果想进一步,不想重启电脑就修 ...

  4. 可选版本 安装软件_【Linux软件】在Deepin系统下安装LibreOffice 6.1.4版本的方法

    在Deepin系统下安装LibreOffice 6.4.1版本的方法 使用的是Deepin系统,从深度应用商店看到有LibreOffice,安装了一下,发现ui是真的丑,就像是十年前的xp那样,记得前 ...

  5. 重启电脑后MySQL数据丢失_为什么当我重启电脑时会出现数据丢失?

    展开全部 大概是内存的问题!但是还是给你提供一些详细的资料!希望能帮助到你! 一.32313133353236313431303231363533e4b893e5b19e31333332626666软 ...

  6. android开发蓝牙自动连接电脑上,android – 配对设备的蓝牙自动连接

    我是新来的,我已经阅读了很多你的帖子,但仍然没有找到问题的解决方案. 我正在为Android 2.2编写一个使用蓝牙连接到终端设备的应用程序. 我有一个配对设备列表,我可以将我的Android平板电脑 ...

  7. linux怎样卸载电脑系统软件,Linux系统怎么卸载软件? Linux卸载Dropbox的教程

    Linux 下有时候我们安装了软件却不知道如何去卸载,或者找不到卸载的位置(不像 Windows 下,的控制面板里可以轻松的卸载).尤其是用网上找来的命令来安装的软件,想需要卸载的时候更是感觉无从下手 ...

  8. linux mysql root免密_Linux下MySQL忘记root密码的完美解决方法

    在使用MySQL数据库时,由于某些原因长时间没有登陆MySQL,或者由于工作交接完成度不高,导致数据库root登陆密码忘记,本文给大家介绍一种当忘记MySQL root密码时的解决办法,亲测有效. 首 ...

  9. linux emacs使用教程,在ubuntu下使用emacs编写C语言程序

    在学习Programming in C的第二遍,我在虚拟机中安装了ubuntu系统,在其中用文本编辑器emacs来写程序,这是我的开始. 在ubuntu中用emacs来写程序,首先我们得先一步一步来, ...

  10. linux扩展模式触摸屏,Ubuntu14.04下使用触摸屏以及笔记本扩展触摸屏设置方法

    今天拿到了一块触摸屏,在win10和Ubuntu14.04下测试其使用.触摸屏品牌为朗歌斯,型号为LS530TM,是一块15寸电阻触摸显示屏. Windows下的使用很方便,显示屏上一共三根线:电源线 ...

最新文章

  1. CSS 和 JS 动画哪个更快
  2. 【动态规划专题】最长上升子序列模型
  3. Design Pattern----06.Creational.Singleton.Pattern (Delphi Sample)
  4. sqlserver如何读写操作windows系统的文件
  5. llustrate dBpoweramp Asset UPnP Premium Mac 音频服务器
  6. mysql mvcc 实例说明_【MySQL】面试官:谈谈你对Mysql的MVCC的理解?
  7. 保存Google、Bing翻译的语音
  8. dede所有目录模板全解
  9. 电脑录制网课视频怎么操作?
  10. CSS 左中右三列布局5种方式
  11. 北京科技大学计算机组成原理,北京科技大学二十套计算机组成原理题库及答案...
  12. sql使用WITH ROLLUP分组统计并求总数
  13. LeetCode每日一题488. 祖玛游戏
  14. Image Processing and Analysis_8_Edge Detection:Finding Edges and Lines in Images by Canny——1983...
  15. 要求在数组头部增添一个数字
  16. 28岁存款6万的我裸辞了
  17. idea的英文是什么意思_英文idea的汉语是什么意思
  18. 基于JAVA早教课程管理系统计算机毕业设计源码+系统+数据库+lw文档+部署
  19. geogebra android,GeoGebra几何
  20. FlexNetLicensing简介(由FlexNetPublisher和FlexNetEmbedded构成)

热门文章

  1. html 去文本框中的双引号_前端·HTML基础
  2. Django 模板中 变量 过滤器 标签 的使用方法
  3. 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral,解决
  4. Swift-EasingAnimation
  5. java 蓝桥杯 石子游戏(题解)
  6. tableau货架图制作_3小时精通Tableau图表制作(18类)
  7. 两张照片重叠处半透明_那些悬浮在空中的照片是怎么拍的?
  8. go并发编程-理解不同并发场景下的go原语
  9. ModelCoder中的超密时间模型
  10. spark基础之调度器运行机制简述