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