linux 进程监控和自动重启的简单实现(转)

linux 进程监控和自动重启的简单实现(转)

目的:linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能。

实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。

1、crontab修改

 

[plain] 
view plain
copy

 

  1. chen@IED_40_125_sles10sp1:~/CandyAT/Bin> crontab -e  
  2. */1 * * * * /home/chen/CandyAT/Bin/monitor.sh  

 

上面的意思是每分钟调用一下脚本monitor.sh

2、monitor.sh的实现

 

[plain] 
view plain
copy

 

    1. #! /bin/sh  
    2. host_dir=`echo ~`                                       # 当前用户根目录  
    3. proc_name=”CandyGameServer”                             # 进程名  
    4. file_name=”/Candy/log/cron.log”                         # 日志文件  
    5. pid=0  
    6. proc_num()                                              # 计算进程数  
    7. {  
    8.     num=`ps -ef | grep $proc_name | grep -v grep | wc -l`  
    9.     return $num  
    10. }  
    11. proc_id()                                               # 进程号  
    12. {  
    13.     pid=`ps -ef | grep $proc_name | grep -v grep | awk ‘{print $2}’`  
    14. }  
    15. proc_num  
    16. number=$?  
    17. if [ $number -eq 0 ]                                    # 判断进程是否存在  
    18. then   
    19.     cd $host_dir/CandyAT/Bin/; ./candy.sh -DZone    # 重启进程的命令,请相应修改  
    20.     proc_id                                         # 获取新进程号  
    21.     echo ${pid}, `date` >> $host_dir$file_name      # 将新进程号和重启时间记录  
    22. fi  
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 原创:http://blog.csdn.net/liumangxiong/article/details/7084637

转载于:https://www.cnblogs.com/fatt/p/4789331.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109344.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • idea社区版创建web项目_不用框架写一个web项目

    idea社区版创建web项目_不用框架写一个web项目IDEA社区版搭建Tomcat服务器并创建web项目目标问题实现步骤目标拥有和专业版创建Web项目的目录结构IDEA社区版可以启动Tomcat服务器编写Servlet并访问成功问题IDEA社区版没有创建Web工程的选项IDEA社区版没有Tomcat插件实现步骤针对以上两个问题,分步解决问题一:IDEA社区版没有创建Web工程的选项创建普通的java项目,此处不再赘述构建web项目的目录结构在WEN-INF文件夹下新建web.xml<?xmlvers

  • docker下修改mysql配置文件[通俗易懂]

    docker下修改mysql配置文件[通俗易懂]由于需要修改mysql的sql_mode,在命令行修改每次重启都会失效,因为修改docker下mysql的配置文件。操作系统:centos7docker版本:Dockerversion17.05.0-ce,build89658bemysql版本:5.7.181.拉取镜像dockerpullmysql:5.7.182.列出镜像[root@zk01~]#dockerimages

  • 3.Eclipse创建第一个Java项目[通俗易懂]

    3.Eclipse创建第一个Java项目[通俗易懂]1.在桌面上双击eclipse快捷键,打开软件,出现一个界面2.这个界面是选择eclipse的工作空间,简单来说就是选择Java项目放在磁盘上的哪个位置上,可以点击默认的,也可以自己创建新的文件夹,然后点击Launch3.在主页面上点击File-&gt;New-&gt;JavaProject创建Java新项目4.在弹出的窗口的Projectname位置处,输入自己项目的名称…

  • 2020最新版MySQL数据库面试题(一)

    2020最新版MySQL数据库面试题(一)

  • 惠普电脑指纹锁_利用计算机对指纹进行识别

    惠普电脑指纹锁_利用计算机对指纹进行识别按下电源键,输入密码,咦?密码输错了……再输……咦?又错了!开机密码是啥来着?设置开机密码很普遍(图片引自网络)相信很多朋友都有过上述经历。为了让笔记本更安全,于是设置了一个开机密码。并且为了提高密码的安全性,时常需要过段时间就更新一次,所以经常一着急就给忘了。设置密码虽好,但是它也有两点弊端,一是增加了开机时间,二是存在遗忘和被盗的风险。想想看,你每次开机是不是都要输入一组6位左右的数字或者字母…

  • densenet实现_sjf算法

    densenet实现_sjf算法论文:DenselyConnectedConvolutionalNetworks论文链接:https://arxiv.org/pdf/1608.06993.pdf代码的github链接:https://github.com/liuzhuang13/DenseNet文章详解:这篇文章是CVPR2017的oral,非常厉害。文章提出的DenseNet(DenseConvolution

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号