工具下载地址:http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
创建package文件夹,安装supervise
mkdir /package
chmod 1755 package
cd package
上传下载的gz文件,解压
tar -zxvf daemontools-0.76.tar.gz
先安装gcc
yum -y install gcc gcc-c++ autoconf make
修改conf-cc
vi src/conf-cc
-include /usr/include/errno.h
package/install
检查安装
cat /etc/inittab
安装成功之后,会在根目录生成两个文件夹:command、service,command里面是supervise相关的启动项什么的,service文件夹用来管理需要守护的进程。
测试:
mkdir /test
cd test
vi demo.c
demo.c:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int ix = 0;
for(;; ix++)
{
printf("%d ", ix);
sleep(1);
}
return 0;
}
gcc -o test test.c
在service文件夹里面创建demo文件夹,里面创建run文件,supervise守护进程会检测名为run的文件来进行执行
cd service
mkdir demo
cd demo
touch run && chmod 755 run
vi run
run:(/demo/demo为可执行文件的绝对路径)
#!/bin/sh
echo "start demo"
/demo/demo
启动守护线程
nohup supervise /service/demo/ &
supervise开头为守护工具的进程,kill掉测试demo的进程,supervise会自动重启该进程