工具下载地址: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

android守护进程 安卓进程守护工具_#include

package/install

检查安装

cat /etc/inittab

android守护进程 安卓进程守护工具_android守护进程_02

安装成功之后,会在根目录生成两个文件夹: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/ &

android守护进程 安卓进程守护工具_android守护进程_03

supervise开头为守护工具的进程,kill掉测试demo的进程,supervise会自动重启该进程