今天折腾了一下daemontools这玩意儿,差点没把我整崩溃。网上教程写得跟天书似的,看完更懵圈了。干脆自己动手踩坑,折腾一上午总算摸出点门道,分享下我的踩坑实录。
第一步:装包就给我整懵了
本来想着直接yum install完事儿,结果输完命令给我弹个大红字,压根没这包!跑去官方源看,好嘛debian系才有现成的。我这破centos7的机器得自己下源码编译。
- 先抓了个最新的daemontools-0.*
- 扔进/usr/local/src解压开干
结果./make敲下去,报错跟放鞭炮似的噼里啪。查了半天发现是编译环境没整还得装个glibc-static库。骂骂咧咧装了依赖再编译,这回总算是成功了。
第二步:这服务目录真邪门
看文档说要用svc命令管服务,但死活找不到启动脚本。翻了半小时才知道必须新建一个/service目录。行,老老实实:
- mkdir -p /service
- chmod 1755 /service
完事儿发现supervise(它自带的管理程序)死活不认目录权限,折腾到想砸键盘。发现是chmod 1755少打个空格,写成chmod1755了(手动白眼)。
第三步:写启动脚本差点去世
最难的就是这个run文件!文档写得跟谜语似的:
- 在/service底下给每个服务建子目录
- 每个目录里塞个叫run的可执行脚本
想监控个nginx进程试水:
#!/bin/sh
exec /usr/sbin/nginx -g 'daemon off;'
保存完chmod +x run提权限,满心欢喜执行svc -u /service/nginx启动。
结果等了三分钟屁反应没有!查日志发现是exec拼错成exce了(摔鼠标)。改完终于看到nginx进程起来,眼泪都要飙出来。
发现服务崩了它真能三秒自启,这波不亏。下次再让我搞这种源码安装的东西……(算了当我没说)
