Linux 进程/端口监控 自动重启

1 通过crontab命令设置任务周期为:1分钟, 即1分钟调用该监控脚本一次。

crontab -e
* * * * * sh /home/task/monitor.sh

2 进程监控脚本 monitor.sh

#! /bin/sh  

proc_name="8002"                                                # 进程名或端口号  
file_name="/home/task/log/cron.log"                             # 日志文件  
pid=0  

proc_num()                                                      # 计算进程数  
{  
    num=`ps -ef | grep $proc_name | grep -v grep | wc -l`  
    return $num  
 }  

proc_id()                                                       # 进程号  
{  
   pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'`  
}  

proc_num  
number=$?  
if [ $number -eq 0 ]                                           # 判断进程是否存在  
then   
    cd /home/task/                             
    python manage.py runserver 0.0.0.0:8002                    # 重启进程的命令,请相应修改  
    proc_id                                                    # 获取新进程号  
    echo ${pid}, `date` >> $file_name                          # 将新进程号和重启时间记录  
fi  

3 测试
(1)查询进程,获取pid

ps -ef | grep 8002| grep -v grep

(2)干掉进程

kill -9 pid

(3)查询进程,看1分钟后进程是否重启

ps -ef | grep 8002| grep -v grep

或者

ps aux | grep 8002| grep -v grep

4 延伸阅读
(1)crontab 命令
http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html
(2)ps 命令
http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html
(3)grep 命令
http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html
(4)wc 命令
http://www.cnblogs.com/peida/archive/2012/12/18/2822758.html
(5)awk 命令
http://www.runoob.com/linux/linux-comm-awk.html
(6)其它
http://zhidao.baidu.com/question/130215468.html
http://www.cnblogs.com/ZhangShuo/articles/1829589.html
http://zhidao.baidu.com/link?url=-yxSah2j_gq56tKENUTmwP_pQAclfE3ij6ST6jSB_VaPFIU1PHouBckBvOYnSVrtkVDX3wErDTU1aEUDy0KdY_

参考文献:
http://blog.csdn.net/liumangxiong/article/details/7084637
原文中任务周期的设置:每小时的第1分钟 调用进程监控脚本, 即任务周期为1小时,而不是一分钟;
由于原页面无法正常登陆,无法向原作者提出该修改信息,且本人需设计一种监控端口的脚本,故重写此文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值