Linux daemontools安装及使用
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