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

 

原文地址:https://www.cnblogs.com/skadieye/p/10043901.html