Openldap
OpenLDAP 不會啟動,也不會記錄原因
最近需要在我們的一台伺服器上重新啟動 OpenLDAP。當我重新啟動服務時,命令提示符只是坐在那裡等待某些東西。我從來沒有得到
[ OK ]
. 如果我CTRL+C
退出它,它會說...killed. /etc/openldap/cacerts/company.crt is not readable by "ldap[WARNING]
為了證明一點,我
/etc/openldap
遞歸地做了777。我仍然得到錯誤。我沒有看到任何
/var/log
改變來給我一些回饋。我需要在哪裡解決這個問題?這是一台執行 Fedora 8 的舊伺服器(我知道,怪罪之前的 IT 人員)。
以下是一些額外調試的想法。僅當您絕對肯定這不是權限問題時才需要這些…
首先,嘗試在調試模式下執行 slapd:
slapd -u ldap -g ldap -d 65
請注意,-d 的參數是一個位欄位,其值可以在
slapd.conf
手冊頁中找到(查找loglevel
)。65
是trace + config,對於這類問題通常足夠冗長。這可能會或可能不會向您顯示任何有用的資訊。如果這不起作用,我們可以使用
strace
(系統呼叫跟踪器)來弄清楚到底發生了什麼。像這樣執行slapd
:strace -o /tmp/trace -f -s 1024 slapd -u ldap -g ldap -d 7
當它死掉時,您將擁有一個
/tmp/trace
包含所有系統呼叫的文件slapd
。對於好奇的-f
人,讓 strace 跟隨分叉(在這種情況下不是真的需要,但這是我的預設設置),-s 1024
並使 strace 在跟踪日誌中列印多達 1024 個字節的字元串參數。現在,使用
grep
來查找company.crt
此文件中的引用。從理論上講,如果它們是權限問題,您會發現如下所示:open("/tmp/company.crt", O_RDONLY) = -1 EACCES (Permission denied)
如果文件失去,或者類似的東西:
open("/tmp/company.crt", O_RDONLY) = -1 ENOENT (No such file or directory)
一個成功的打開看起來像這樣:
open("/tmp/company.crt", O_RDONLY) = 3
這
3
是 open 返回的文件描述符(並且可能是其他一些正整數)。看一下,看看是否有明顯的東西跳出來。讓我知道這是否沒有幫助。