linux下通过脚本监控程序运行
2016-02-18 18:32
363 查看
转载自:http://blog.csdn.net/shanzhizi/article/details/10180183
shanzhizi大神的,写的很实用,谢谢大神。
应用程序运行过程中,任何人都无法保证它永远不死定,因此自动重启就十分必要。以下是自动重启的shell脚本实现方法,shell脚本来自网络。
假定需要实现重启的程序名为 test ,我们这里通过判断进程数目来判断程序是否正常。
ps -ef | grep “1"|grep−v"grep"|wc–l其中的1 是要监控的进程名称(本例中为 test的进程 ),这个命令将返回该进程的进程个数。脚本根据进程数来决定下一步的操作。通过一个死循环,每隔 1 秒检查一次系统中的指定程序的进程数。
代码如下:
shanzhizi大神的,写的很实用,谢谢大神。
应用程序运行过程中,任何人都无法保证它永远不死定,因此自动重启就十分必要。以下是自动重启的shell脚本实现方法,shell脚本来自网络。
假定需要实现重启的程序名为 test ,我们这里通过判断进程数目来判断程序是否正常。
ps -ef | grep “1"|grep−v"grep"|wc–l其中的1 是要监控的进程名称(本例中为 test的进程 ),这个命令将返回该进程的进程个数。脚本根据进程数来决定下一步的操作。通过一个死循环,每隔 1 秒检查一次系统中的指定程序的进程数。
代码如下:
#!/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 "test" CheckQQ_RET=$? if [ $CheckQQ_RET -eq 1 ]; then # 杀死所有test进程,可换任意你需要执行的操作 killall -9 test exec ./test & fi sleep 1 done
相关文章推荐
- 《Linux系统useradd-passwd添加账号密码讲解及su命令介绍》
- Linux安装指定mysql版本
- linux之I2C裸机驱动解析(转)
- Linux下TOP命令详解
- linux 5.4 安装php
- linux下php5.4安装Zend Guard Loader扩展
- 第一个Linux驱动-流水灯【转】
- Linux权限管理
- Linux下c开发之——线程间通信
- Linux软件包管理
- linux设置固定ip
- scp采用无密码在两台linux服务器之间传输数据
- Linux用户组管理
- linux下检测本机是否可以上网
- Linux磁盘操作命令
- CentOS 6.5下安装BeEF
- linux--给初学者的建议
- Linux下Mysql主从同步错误:Slave_SQL_Running: No的解决方案
- centos6.6下安装MySQLdb时出现“error command 'gcc' failed with exit status 1”
- CentOS6.5下安装字体