此工具可以实现进程挂掉后,自动重启的功能。
首先下载daemontools安装包,下载链接如下:http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
http://lfs.linuxsir.org/htdocs/blfs/basicnet/daemontools.html页面下有此工具的相关介绍。
安装过程如下:
1.新建文件夹
新建/package 文件夹,
mkdir package
chmod 1755 package
cd /package
2.将下载好的安装包拷贝到当前目录下,解压,命令如下:
tar xvzf daemontools-0.76.tar.gz
cd admin/daemontools-0.76
3.安装前:
修改 src/conf-cc 在最后加上
-include /usr/include/errno.h
4.安装命令如下:
cd admin/daemontools-0.76 &&
patch -Np1 -i ../../daemontools-0.76.errno.patch &&
package/compile &&
cd package &&
sed 's|command|usr/sbin|' boot.inittab > boot.inittab~ &&
mv boot.inittab~ boot.inittab &&
cd ../command &&
sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \
-e 's|command|usr/sbin|' \
-e 's|/service|/etc/service|g' svscanboot > svscanboot~ &&
mv svscanboot~ svscanboot &&
chmod 555 svscanboot &&
cp * /usr/sbin &&
cd ../package &&
cat /etc/inittab boot.inittab > /etc/inittab~ &&
mv -f /etc/inittab~ /etc/inittab &&
mkdir /etc/service &&
telinit Q
5.安装完成好,来测试一下功能:
新建一个test目录:mkdir test
新建一个test.c文件,内容如下:
#include"stdio.h"
int main(){
int i = 0;
for(;;i++)
{
printf("%d\n",i);
sleep(1);
}
return 0;
}
编译gcc -o test test.c得到二进制文件test。
6.在二进制文件test同级目录下新建一个名为run的文件:
内容如下:
#!/bin/bash
/usr/test/test //此处为test文件的绝对路径
最后将执行权限给run文件:chmod +x test
7.最后,即可调用supervise命令,命令如下:
supervise /usr/test //supervise后面的路径为test文件所在文件夹的绝对路径。
8.用supervise命令启动进程后,在test文件的同级目录下会生成一个supervise的文件,如果有报错,将此文件删除,重新调用启动即可。