网址:http://www.xiaojb.com/archives/mailtech/debugsmtpd.shtml
今天有闲心升级了一下pmail.xiaojb.com的postfix,结果升级后发现smtpd总是异常退出,log中的记录是:
warning: process /home/postfix/libexec/smtpd pid 15753 exit status 127
修改master.cf,smtpd后边加上-v,继续调试依然看不出问题所在。
没有办法了,只好用strace。
postfix的smtpd是由master启动的,25端口没有请求,master是不会启动smtpd的,但是启动后很快会异常退出
最后使用的办法是
postfix stop
postfix start
telnet localhost 25
马上在另一个窗口运行
strace -p `ps -ax|grep smtpd | grep -v grep|awk ‘{print $1}’`
最后得到了这样的结果
writev(2, [{"smtpd", 5}, {": ", 2}, {"relocation error", 16}, {": ", 2}, {"smtpd", 5}, {": ", 2}, {"undefined symbol: sasl_version_i"..., 35}, {"", 0}, {"", 0}, {"\n", 1}], 10) = 68
原来是sasl库的问题
ldd /home/postfix/libexec/smtpd,发现使用的sasl2的链接库是系统默认的,而我编译postfix的时候是自己编译的cygrus-sasl2,只有重新编译postfix。
make的时候加上这样的环境变量
export LD_RUN_PATH=/home/postfix/sasl/lib:/usr/lib/mysql:/home/postfix/authlib/lib/courier-authlib
重新编译调试,一切OK了。
Tags: Postfix
February 8th, 2006 at 13:08
很想和你交流Postfix的问题.请加MSN:weidong35@hotmail.com
February 8th, 2006 at 17:42
18051473
加入这个群吧,这里人很多。