歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Daemontools 在 Linux上編譯錯誤解決

Daemontools 在 Linux上編譯錯誤解決

日期:2017/2/28 16:49:20   编辑:Linux教程

在Linux上編譯daemontools出現錯誤

執行install出現

/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o

/lib/libc.so.6: could not read symbols: Bad value

collect2: ld returned 1 exit status

make: *** [envdir] Error 1

Copying commands into ./command...

cp: cannot stat `compile/svscan': No such file or directory

修改 src/conf-cc 在最後加上

-include /usr/include/errno.h

相關閱讀:

在Linux系統上運行服務(或daemons)的典型方法是使用initscripts,它是殼腳本的優化版,能夠開始和停止服務。雖然這種方法對大部分來說都是適用的,但是高效的有效性卻正在丟失。如果服務自己停止了,它就會無效了。

另外一種運行服務的方法是使用D. J. Bernstein的Daemontools軟件包。它運行一個叫做監督的Daemon,它能夠監督它能啟動的所有服務。如果一個服務停止了,監督將會在五秒鐘之內重新啟動它,所以它的服務總是有效的。

使用daemontools是相當簡單的。它使用/service目錄等級跟一個根據下層服務命名的子目錄。子目錄包括一個叫做運行的文件,跟initscript非常地相似。

運行的腳本啟動服務。如果服務曾經有過停止,監督將會重新執行腳本來啟動它。

比如,如果你想要在監督下運行OpenSSH ,創建目錄 /supervise/sshd. 運行的腳本的內容應該看到正如如下的initscript:

#!/bin/sh

exec /usr/sbin/sshd -D >/dev/null 2>&1

這樣就啟動了sshd,而且阻止它在後台運行。監督需要所有它開始在前台運行的服務。它根本不影響用戶的;而服務只知道它在前台運行的服務。但是這能夠使得監督更好地控制服務。

如果你想要停止服務,告訴監督你需要正如如下所標的服務,引導它發送控制的daemon術語信號。例子:

# svc -dx /service/sshd

這就停止了服務,並且標記了它,當監督不能在幾秒鐘之內的停止,重新啟動它。

請查看daemontools網站,或許更多有關daemontool的信息和下載該軟件。

Copyright © Linux教程網 All Rights Reserved