一、简介
supervise是Daemontools工具包中的工具之一,主要用来对进程进行监控。它能够监控指定的进程,当进程挂掉的时候,可以重新启动该进程。
supervise添加监控的服务非常容易,格式如下:supervise serverDir [参数]
serverDir启动服务shell文件所在目录,即run文件所在目录,当server挂了之后,supervise会调用serverDir目录下面的run文件来启动服务。
二、使用
1、案例1
假设现在需要监控的一个shell进程,test.sh 代码如下:#! /bin/bash
echo `date +"%Y-%m-%d %H:%M:%S"`
sleep 5
上面的代码,输出当前时间,然后暂停5s就退出。
通过如下命令,执行上面程序:./test.sh >> /data/test.log
发现,往test.log中输入了:2019-05-21 16:25:07
现在,我们利用 supervise工具,让test.sh退出后,再次启动。
首先,建立run文件来启动 test.sh服务,如下:#!/bin/sh
echo "start test!"
cd /home/lidequan/test && ./test.sh
然后,让supervise监控并启动test.sh服务,如下:supervise test/ >> /data/test.log
通过“sudo ps -aux |test”我们就可以看到test进程被监控。
当test.sh进程运行结束后,会被再次启动。
此时,我们使用kill命令,杀死 test.sh所在进程后,它会立马启动起来。
如果想关闭 test.sh的执行,可以杀死 supervise test/ 所在进程。