1. 访问页面 https://cr.yp.to/daemontools/install.html 下载 daemontools
2. 创建工作目录
mkdir -p /package
chmod 1755 /package
cd /package
3. 解压安装包并安装
mv daemontools-0.76.tar /package
tar -zxvf daemontools-0.76.tar
cd admin
cd daemontools-0.76
./package/install
4. 安装过程中出错及解决
1)出错代码
./load envdir unix.a byte.a
/usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [envdir] Error 1
2)解决
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
5. 安装后svscanboot 不能正常启动问题
1) 按照官方说明,在安装完成后,会自动增加到 /etc/init.tab中 , 增加自动启动功能, 代码如下, 但是重启后发现程序并未拉起,daemotool 服务不能正常使用
官方解释参考 开机启动说明
cat /etc/inittab
id:5:initdefault:
SV:123456:respawn:/command/svscanboot
2) 解决, 参考官方说明
vim /etc/init/svscan.conf
#增加以下命令以支持自启动
start on runlevel [12345]
stop on runlevel [^12345]
respawn
exec /command/svscanboot
#加载配置文件,并启动(不需要重启机器)
initctl reload-configuration
initctl start svscan
6. 服务异常被拉起
root 1100 1088 0 16:27 ? 00:00:00 readproctitle service errors: ...xec format error?supervise: fatal: unable to start prometheus.service/run: ex
查看介绍是因为写的run脚本中, "#!/bin/sh" 没有放在run文件的第一行,引发了daemontool 执行时启动错误, 进程一直不断被拉起, 调整至开头后解决
[root@centosx1 prometheus.service]# svstat /service/prometheus.service/
/service/prometheus.service/: up (pid 6449) 0 seconds
[root@centosx1 prometheus.service]#
[root@centosx1 prometheus.service]#
[root@centosx1 prometheus.service]# svstat /service/prometheus.service/
/service/prometheus.service/: up (pid 6452) 0 seconds
[root@centosx1 prometheus.service]#
[root@centosx1 prometheus.service]#
[root@centosx1 prometheus.service]# svstat /service/prometheus.service/
/service/prometheus.service/: up (pid 6455) 0 seconds
[root@centosx1 prometheus.service]#
[root@centosx1 prometheus.service]# svstat /service/prometheus.service/
/service/prometheus.service/: up (pid 6458) 0 seconds