最近项目的看门狗经历了三个版本。

第一个版本:

用ps -ef,如果程序挂了就启动

第二个版本:

程序由于运行时会出现不再监听7901端口,所以不能简单判断机器是不是挂了,而是判断此端口是否有监听

第三个版本:

当7901端口不再监听,就先把原来的killall在启动,每次输出到文件的内容都加日期,要不然根本不知道这事情啥时候发生的

#!/bin/sh

set +x

source env.sh

PRMGRAM=scp_platform

FILE_NAME=scp_monitor.log

Current_Time=`date +"%Y-%m-%d %H:%M:%S.%N"`

echo "[${Current_Time}] monitor start...."

echo "[${Current_Time}] monitor start...." >> ${WORK_DIR}/log/${FILE_NAME}

port=7905

TCPListeningnum=`netstat -an | grep ":$port " | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l`

if [ $TCPListeningnum = 1 ]

then

{

echo "[${Current_Time}] The $port is listening"

}

else

{

echo "[${Current_Time}] The port is not listening"

}

fi

while [ 1 ]

do

Current_Time=`date +"%Y-%m-%d %H:%M:%S.%N"`

TCPListeningnum=`netstat -an | grep ":$port " | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l`

if [ $TCPListeningnum = 1 ]

then

{

echo "[${Current_Time}] The ${port} is listening" >> ${WORK_DIR}/log/${FILE_NAME}

}

else

{

echo "[${Current_Time}] The ${port} is not listening" >> ${WORK_DIR}/log/${FILE_NAME}

echo "[${Current_Time}] killall scp_platform now !" >> ${WORK_DIR}/log/${FILE_NAME}

kscp

echo "[${Current_Time}] check ${PRMGRAM} quit, now restart ${PRMGRAM} ..." >> ${WORK_DIR}/log/${FILE_NAME}

scp_platform&

}

fi

sleep 180

done

其中依赖的env.sh主要是设置环境变量和自定义的变量

#bin/bash

export ROOT=/root/scp

export WORK_DIR=${ROOT}

export INCLUDE=${ROOT}/include

export OTL=${INCLUDE}/otl_mysql

export LD_LIBRARY_PATH=${ROOT}/lib:/usr/local/lib

export ACE_ROOT=${INCLUDE}

export ODBCINI=/usr/local/etc/odbc.ini

export ODBCSYSINI=/usr/local/etc

PATH=${PATH}:${ROOT}/bin

export PATH

odbcinst -j

alias wk='cd ${ROOT}'

alias bin='cd ${ROOT}/bin'

alias cfg='cd ${ROOT}/conf'

alias rmlog='rm -rf ${ROOT}/bin/log*.*; rm -rf ${ROOT}/log/*.*'

alias lis='netstat -an|grep -i 7905'

alias scp='${ROOT}/bin/scp_platform &'

alias moni='${ROOT}/bin/monitor.sh &'

alias myps='ps -fu root|grep -v grep|grep -i scp'

alias mymoni='ps -fu root|grep -v grep|grep -i moni'

alias kscp='killall -9 scp_platform'

alias kmoni='killall -9 monitor.sh'

isql

alias mynet='netstat -an | grep 7905'

ulimit -c unlimited

ulimit -n 65530

原文:http://blog.csdn.net/calmreason/article/details/37921867

linux下看门狗脚本,Linux看门狗脚本 1.4相关推荐

  1. linux下tomcat脚本,Linux下重启多个 tomcat 服务的脚本(推荐)

    由于修改tomcat的配置文件或手动操作数据库数据后,tomcat的缓存和redis的缓存很严重,需要经常重启tomcat来释放缓存,经常就是手动重启. # 1.查找tomcat的进程ID ps -e ...

  2. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  3. linux下ioctl操作网络接口,linux下无线网卡的ioctl 接口

    var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/ba ...

  4. linux下简单的批处理文件,LINUX下SHELL批处理(SSH批处理命令写法)

    Linux下的SSH类似于windows下的DOS,算是一种便捷版的远程桌面系统,可以让我们直接远程管理LINUX服务器,DOS下有批处理命令,LINUX的SHELL也有远程SSH批处理命令,SSH批 ...

  5. linux下的进程创建,Linux下进程的创建

    这篇文章主要是讲解到Linux进程的控制,包括程序和进程.守护进程.守护进程的出错处理. 1.程序和进程 程序(program)是存放在磁盘文件中的可执行文件,程序的执行实例被称为进程(process ...

  6. [转帖]linux下的X server:linux图形界面原理

    linux下的X server:linux图形界面原理 https://www.cnblogs.com/liangxiaofeng/p/5034912.html linux下的X server:lin ...

  7. linux下的X server:linux图形界面原理

    linux下的X server:linux图形界面原理 Moblin Core是在Gnome Mobile的平台上建立.我以前玩Linux,提交的都和图像没有关系,连Xwindows都不用启动,开机后 ...

  8. Linux下的tree命令 --Linux下目录树查看

    Linux下的tree命令 --Linux下目录树查看 有时我们需要生成目录树结构,可以使用的有ls -R,但是实际效果并不好 这时需要用到tree命令,但是大部分Linux系统是默认不安装该命令的, ...

  9. Linux下python的命令,linux下python相关命令

    若本机已安装python2,尽量不要动现有的python2,额外安装python3即可. 1.安装python3.6(centos下安装python3自带pip和setuptools) # 安装依赖环 ...

  10. linux下怎么绑定arp,LINUX 下进行arp 绑定.doc

    LINUX 下进行arp 绑定 LINUX 下进行arp 绑定 一.约定 1.网关上已经对下面所带的机器作了绑定.网关IP: MAC:00:02:B3:38:08:62 2.要进行绑定的Linux主机 ...

最新文章

  1. android wifi动画显示,android动态配置Wifi信息
  2. win2000输入密码后循环登陆,不能进入用户桌面
  3. 什么是XSS攻击XSS攻击应用场景
  4. 【转】通过Graph 浏览器体验Microsoft Graph
  5. java对外发布接口文档_java之接口文档规范
  6. 遇到 oracle 错误 25153,EXP时,出现3113的错误,不知道怎么解决?
  7. Oracle学习 第20天 PL/SQL导入
  8. java基础练习(持续更新)
  9. [转]remote object /data/media/clockworkmod/backup/ does not exist
  10. 思岚SLAMTEC A1开箱测试(实现雷达数据的查看+hector_slam建图)
  11. Talib macd函数探究
  12. MIPS汇编语言实现Fibonacci数列(斐波那契数列)
  13. QuickTime格式解析
  14. 猿如意开发工具|python3.7
  15. 在线书籍阅读,免费搭建站点
  16. 【Socket网络编程进阶与实战】------ Socket网络编程快速入门
  17. 如何解决WARNING C4996问题
  18. 关于msn登陆不上去了的解决方法
  19. java+selenium+chromedriver 整页截屏
  20. 第一部分 思科九年 一(12)

热门文章

  1. Sqlserver 触发器
  2. DEDE整站动态化或整站静态化设置方法
  3. 算法竞赛入门经典第二版:循环结构程序设计实例与习题
  4. matlab图片加小刻度
  5. cool-admin框架后端使用-node版本,配置多数据源
  6. 简单的福彩双色球生成器
  7. Canvas画布实现套索的效果
  8. 032 怎样从零基础学黑客
  9. ios tabbar插件_IOS研究院之分页栏TabBar的使用(四)
  10. 微信开放平台下,公众号获取到用户的unionId(非三方平台模式)