在CentOS 6.4上安装daemontools(守护进程工具)
2013-11-13 10:07
537 查看
最近用到了daemontools,却发现百度上基本上没有中文版的,特此分享出来给大家,作者的英语水平也不太好,翻译不对的地方请指正。
如下:
supervise: 这个命令会执行一个目录例如s下的run脚本,如果run脚本存在的话。执行完后run脚本后如果run脚本退出的话它会隔几秒再执行一次。如果s/down文件存在的话,supervise则不会立刻启动run脚本, 可以用svc(请看svc)命令来启动,supervise在s/supervise目录下维护一个二进制格式状态信息,所以这个目录对supervise必须是可写的,svstat(请看svstat)命令可以用来读取这个状态信息。当supervise在s目录中找不到他需要的文件或者已经有了一个supervise在s目录中运行时,supervise退出后不会立刻启动。一旦supervise成功运行起来了它是不会退出的除非被杀死或者被明确的要求退出。
svc:用法:
-u : up, 如果services没有运行的话,启动它,如果services停止了,重启它。
-d : down, 如果services正在运行的话,给它发送一个TERM(terminate)信号,然后再发送一个CONT(continue)信号,在它停止后,不再启动它。
-o : once, 如果services没有运行,启动它,但是在它停止后不再启动了。就是只运行一次。
-p : pause, 给services发送一个停止信号。
-c : continue, 给services发送一个CONT信号。
-h : hang up, 给services发送一个HUP信号。
-a : alarm, 给services发送一个ALRM信号。
-i : interrupt, 给services发送一个INT信号。
-t : Terminate, 给services发送一个TERM信号。
-k : kill, 给services发送一个KILL信号。
-x : exit, supervise在services停止后会立刻退出, 但是值得注意的是,如果你在一个稳定的系统中使用了这个选项,你已经开始犯错了:supervise被设计成为永远运行的。
svok: 用来检查supervise是否在运行。checks whether supervise is successfully
running in the directory named service. It silently exits 0 if supervise is successfully running. It silently exits
100 if supervise is not successfully running. 本人是小白,这个暂时翻译不了,请大牛们跟帖翻译吧。
svstat:用法:
mkdir -p /package //创建一个文件夹
chmod 1755 /package //给文件夹改权限
cd /package //进入这个文件夹
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz //使用wget命令下载daemontools到当前目录下
gunzip daemontools-0.76.tar
tar -xpf daemontools-0.76.tar //这两步解压daemontools
rm -f daemontools-0.76.tar //
删除安装包
cd admin/daemontools-0.76/ //进入到安装文件夹中
nano src/conf-cc //编辑src/conf-cc文件防止在后续安装过程中报错,nano是一个文本编辑器
在打开的编辑窗口中的gcc开头的哪一行的最后面空一格添加 -include /usr/include/errno.h,完成后Ctrl + X 保存退出,不会使用nano编辑器的可以用其他编辑器取代。
package/install //安装
cat /etc/inittab //查看inittab,在其中可以看到这一行:SV:123456:respawn:/command/svscanboot was appended.
注意:原文中介绍的加入开机启动的方法在centos6.4 中已经失效,如果同学们重启之后daemontools没有启动的话就说明失效了,使用svstat 服务目录 来查看服务是否启动。我们使用新的方法:
删除 /etc/iinittab中刚才添加的那一行: SV:123456: respawn....... ,因为没有用
cd /etc/init
nano svscan.conf 创建一个名叫svscan.conf的新文件
在其中加入
然后让init重新加载配置,并且开始svscanboot就可以了
initctl reload-configuration
initctl start svscan
本人口才较差,有不懂的可以跟帖提问
1. 简单介绍一下daemontools 点击查看英文原文
daemontools是一个守护进程工具,用来监视一个进程以免其意外退出,例如用来监视某个目录中的一个java程序入口,让它一直处于运行状态。被daemontools守护的进程是无法使用kill指令杀死的,但这样说不准确,实际上是可以杀死的,只是杀死后立即重启。daemontools的设计理念就是这样的。它包括很多程序(或者说是命令)。如下:
svscanboot: 这条指令非常重要,但是一般不需要自己手动输入执行,它用来启动 /service 目录下的svscan(请看svscan)命令,然后svscan会启动supvise(请看supvise),supvise会执行run脚本并且监视它。安装成功后在Linux重启的时候会自动执行svscanboot。
svscan: 用来启动服务目录下的所有子目录中的supervise(请看supervise)进程,svscan启动两个一对supervise进程,一个子目录s,一个子目录s下的log目录(如果有的话),启动的时候程序会自动运行子目录s中的run脚本,并且监视run脚本启动的进程,同时会启动s/log中的run脚本,这个脚本可以用来输出s目录中的run脚本的日志到指定目录下。s/log中的run脚本请看后边的例子。svscan每五秒检查一次子目录,如果发现新的目录,它会为这个目录启动一个新的supervise进程。如果发现一个已经执行过supervise但是supervise已经退出的目录,它会为这个目录重启supervise进程。svscan被设计成一直运行的,如果无法执行supervise,它会每隔5秒重试一次。supervise: 这个命令会执行一个目录例如s下的run脚本,如果run脚本存在的话。执行完后run脚本后如果run脚本退出的话它会隔几秒再执行一次。如果s/down文件存在的话,supervise则不会立刻启动run脚本, 可以用svc(请看svc)命令来启动,supervise在s/supervise目录下维护一个二进制格式状态信息,所以这个目录对supervise必须是可写的,svstat(请看svstat)命令可以用来读取这个状态信息。当supervise在s目录中找不到他需要的文件或者已经有了一个supervise在s目录中运行时,supervise退出后不会立刻启动。一旦supervise成功运行起来了它是不会退出的除非被杀死或者被明确的要求退出。
svc:用法:
svc opts servicesopts是一系列的参数,services是一个有supervise监视的目录,以下是所有的选项:
-u : up, 如果services没有运行的话,启动它,如果services停止了,重启它。
-d : down, 如果services正在运行的话,给它发送一个TERM(terminate)信号,然后再发送一个CONT(continue)信号,在它停止后,不再启动它。
-o : once, 如果services没有运行,启动它,但是在它停止后不再启动了。就是只运行一次。
-p : pause, 给services发送一个停止信号。
-c : continue, 给services发送一个CONT信号。
-h : hang up, 给services发送一个HUP信号。
-a : alarm, 给services发送一个ALRM信号。
-i : interrupt, 给services发送一个INT信号。
-t : Terminate, 给services发送一个TERM信号。
-k : kill, 给services发送一个KILL信号。
-x : exit, supervise在services停止后会立刻退出, 但是值得注意的是,如果你在一个稳定的系统中使用了这个选项,你已经开始犯错了:supervise被设计成为永远运行的。
svok: 用来检查supervise是否在运行。checks whether supervise is successfully
running in the directory named service. It silently exits 0 if supervise is successfully running. It silently exits
100 if supervise is not successfully running. 本人是小白,这个暂时翻译不了,请大牛们跟帖翻译吧。
svstat:用法:
svstat services打印出被supverise监视的services运行状态。
2. 在centOS6.4上安装daemontools步骤
首先安装nano编辑器,这个编辑器比vi编辑器方便许多, 输入:yum install nanomkdir -p /package //创建一个文件夹
chmod 1755 /package //给文件夹改权限
cd /package //进入这个文件夹
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz //使用wget命令下载daemontools到当前目录下
gunzip daemontools-0.76.tar
tar -xpf daemontools-0.76.tar //这两步解压daemontools
rm -f daemontools-0.76.tar //
删除安装包
cd admin/daemontools-0.76/ //进入到安装文件夹中
nano src/conf-cc //编辑src/conf-cc文件防止在后续安装过程中报错,nano是一个文本编辑器
在打开的编辑窗口中的gcc开头的哪一行的最后面空一格添加 -include /usr/include/errno.h,完成后Ctrl + X 保存退出,不会使用nano编辑器的可以用其他编辑器取代。
package/install //安装
cat /etc/inittab //查看inittab,在其中可以看到这一行:SV:123456:respawn:/command/svscanboot was appended.
注意:原文中介绍的加入开机启动的方法在centos6.4 中已经失效,如果同学们重启之后daemontools没有启动的话就说明失效了,使用svstat 服务目录 来查看服务是否启动。我们使用新的方法:
删除 /etc/iinittab中刚才添加的那一行: SV:123456: respawn....... ,因为没有用
cd /etc/init
nano svscan.conf 创建一个名叫svscan.conf的新文件
在其中加入
start on runlevel [345] respawn exec /command/svscanboot
然后让init重新加载配置,并且开始svscanboot就可以了
initctl reload-configuration
initctl start svscan
本人口才较差,有不懂的可以跟帖提问
相关文章推荐
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- Centos6 编译安装Python
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 硬盘安装CentOS 6.2以及添加GRUB启动菜单
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- CentOS 6.2实战部署Nginx+MySQL+PHP
- Linux VS Unix:Linux欲一统天下 Unix不死
- linux下设定环境变量
- Linux下修改MySQL编码的方法
- Linux串口通信
- 从Windows系统下访问Linux分区相关软件