
最近工作中用到了daemontools工具来管理服务进程,再次总结下。
当服务进程因为某些原因(包括kill)挂掉了,daemontools会重新启动这个进程
环境介绍:
_64位最小化安装
[root@git-server~][root@git-server~]vimsrc/conf-ccgcc-O2-Wimplicit-Wunused-Wcomment-Wchar-subscripts-Wuninitialized-Wshadow-Wcast-qual-Wcast-align-Wwrite-strings-include/usr/include/
注意:下面的最后一条命令的package表示目录下的package目录,而不是一个package命令
1.2sudo编译安装[root@]tail-1/etc/inittabSV:123456:respawn:/command/svscanboot
之所以要使用sudo是因为,install脚本会在根目录/下创建两个目录:/service和/command目录。
其中/service目录用来存放被daemontools管理的进程.
注意在/service目录下存放的只能是连接。
/command命令下存放的是daemontools的一些常用命令。
配置启动项,把csh-cf'/command/svscanboot'加入到/etc/=/etc//末尾:开机自启动
[root@git-servercommand]tail-2/etc/'/command/svscanboot'[root@git-servercommand]yuminstalltcsh-y[root@git-servercommand]whichcsh/bin/csh
再次安装成功:
[root@git-servercommand][root@git-servercommand]/command/svscanboot[root@git-serverservice]svstat/service/nginx/service/nginx:up(pid19169)0seconds[root@git-servernginx]ps-ef|grepsvsroot136891022:55pts/300:00:00/bin/sh/command/svscanbootroot22:55pts/300:00:00svscan/serviceroot2:06pts/200:00:00grep--colorsvs查看服务的状态:[root@git-servernginx]mkdir/data/nginx-p[root@git-serverservice]!/bin/bashexecservicenginxstart
停止nginx服务
[root@git-servernginx]chmod+x/data/nginx/run[root@git-serverservice]svc-d/service/nginx[root@git-serverservice]servicenginxstop
如果不再需要daemontools守护某服务,可完成上述操作后,将/service下的对应目录删除。
服务所在目录/service
开启对nginx服务的监控:
[root@git-serverservice]svstat/service/nginx/service/nginx:up(pid23563)1seconds
nginx服务再次被启动
[root@git-servernginx]cat/service/masterha_app1/runchmod+x/service/masterha_app1/run
演示到此结束,很简单吧,伙伴们一看就会。