用daemontools 安装守护进程,用于管理工作当中经常挂起的服务。
安装方法:
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gztar xvzf daemontools-0.76.tar.gzcd admin/daemontools-0.76package/install
如果出现错误:
/usr/bin/ld: errno: TLS defini tion in lib/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
解决办法:
vim src/conf-cc# 在gcc 一行末尾增加-include usr/include/errno.h# 更改后gcc -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings -include usr/include/errno.h
启动daemontools
daemontools是一组service管理工具,其中svscanboot工具用来启动svscan工具。可以通过以下命令启动svscanboot
/usr/local/bin/svscanboot &
设置开机自启动:http://cr.yp.to/daemontools/start.html
启动之后,查看进程,可以发现svscan做为svscanboot的子进程在运行
[root@bjdfkjy-46-124 qb_nginx]# ps aux |grep svsroot 5297 0.0 0.0 113124 2704 pts/0 S 12:16 0:00 bin/sh usr/local/bin/svscanbootroot 5299 0.0 0.0 4344 1100 pts/0 S 12:16 0:00 svscan /serviceroot 6375 0.0 0.0 112656 2276 pts/0 S+ 12:18 0:00 grep --color=auto svs
配置
启动svscanboot之后,相应的svscan进程也启动起来,其中参数/service/ 就是管理配置文件的目录
在services目录创建run脚本(名字必须是run而且权限是755),例如nginx目录
[root@bjdfkjy-46-124 ~]# tree /service//service/└── nginx├── run└── supervise├── control├── lock├── ok└── status[root@bjdfkjy-46-124 ~]# cat /service/nginx/run#!/bin/shcd /apps/soft/qb_nginx &&gunicorn -w 1 -b 0.0.0.0:8080 qb_nginx.wsgi:application --reload >> ./log/out.log 2>&1 &
svscanboot负责启动svscan服务,svscan管理supervise进程。而具体的客户进程,是通过supervise进程来统一管理的
常用命令:
启动被管理的进程 (配置完后无需执行svc命令)svc -u /service/nginx/关闭被管理的进程(不会关闭daemontools supervise进程)svc -d /service/nginx/查看service状态svstat /service/nginx/移除servicesvc -dx /opt/svc/nginx/
文章转载自小璇坨坨,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




