Postfix启动错误端口25:地址已在使用中


19

我正在尝试在服务器上运行postfix,但是在我的服务器中不断出现以下错误/var/log/mail.log

postfix / master [5041]:致命:绑定0.0.0.0端口25:地址已在使用中

我进行了一些搜索,发现了Oli的出色答案(针对这个问题),建议我基本上摆脱服务器上的sendmail软件包以避免冲突,然后重新安装postfix,这将反过来安装其自己的sendmail品牌。不幸的是,它并不能完全解决问题(有关方法,请参见下文)。

我按照指示进行了以下检查,并收到了令人鼓舞的答复:

$ dpkg -S `which sendmail`
postfix: /usr/sbin/sendmail

但是,当我再次启动postfix时,出现了相同的错误。

根据Oli的偶然性,我寻找了以下问题来占用端口25:

$ sudo netstat -pel | grep smtp
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      root       
35704126    27626/sendmail: MTA

但这是令人困惑的地方:然后我寻找该过程,27626但随后被告知:

dpkg-query:找不到与模式27626
连接
匹配的路径。

我拉起htop并能够找到与以下命令关联的上述PID:

sendmail:MTA:接受连接

然后我试图杀死了过程killall sendmail,并killall 27626与不断得到no process found

问题是(除了显而易见的)我不知道如何解释这些发现。我清理了sendmail的服务器,所以只能假定postfix自己的sendmail版本正在劫持端口?我什至不知道这是否有意义。

无论如何,如果有人可以直截了当地告诉我,或者至少提出一些有趣的诊断问题,我将不胜感激。

如果有用, 我将在服务器上使用virtualmin来管理一些不同的域,同时还要运行wordpress。

提前谢谢了!

为了回应要求,我在ps -ef下方张贴了

root@upsmart:~# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jan12 ?        00:00:00 init
root         2     1  0 Jan12 ?        00:00:00 [kthreadd/20017]
root         3     2  0 Jan12 ?        00:00:00 [khelper/20017]
root        68     1  0 Jan12 ?        00:00:00 upstart-udev-bridge --daemon
root        75     1  0 Jan12 ?        00:00:00 /sbin/udevd --daemon
root       110     1  0 Jan12 ?        00:00:00 /usr/sbin/sshd -D
root       130    75  0 Jan12 ?        00:00:00 /sbin/udevd --daemon
root       131    75  0 Jan12 ?        00:00:00 /sbin/udevd --daemon
root       175     1  0 Jan12 ?        00:00:00 upstart-socket-bridge --daemon
116        205     1  0 Jan12 ?        00:00:03 dbus-daemon --system --fork --activation=upstart
root       385     1  0 Jan12 ?        00:00:00 /usr/sbin/dovecot -F -c /etc/dovecot/dovecot.conf
root       386     1  0 Jan12 ?        00:00:04 cron
mysql      410     1  0 Jan12 ?        00:08:06 /usr/sbin/mysqld
dovecot    441   385  0 Jan12 ?        00:00:00 dovecot/anvil
root       442   385  0 Jan12 ?        00:00:00 dovecot/log
root       444   385  0 Jan12 ?        00:00:00 dovecot/config
syslog     445     1  0 Jan12 ?        00:00:08 /sbin/syslogd -u syslog
bind       474     1  0 Jan12 ?        00:00:12 /usr/sbin/named -u bind
clamav     844     1  0 Jan12 ?        00:01:34 /usr/sbin/clamd
clamav     951     1  0 Jan12 ?        00:03:27 /usr/bin/freshclam -d --quiet
list       969     1  0 Jan12 ?        00:00:00 /usr/bin/python /usr/lib/mailman/bin/mailmanctl -s -q start
list       970   969  0 Jan12 ?        00:01:03 /usr/bin/python /var/lib/mailman/bin/qrunner --runner=ArchRunner:0:1 -
list       971   969  0 Jan12 ?        00:01:10 /usr/bin/python /var/lib/mailman/bin/qrunner --runner=BounceRunner:0:1
list       972   969  0 Jan12 ?        00:01:03 /usr/bin/python /var/lib/mailman/bin/qrunner --runner=CommandRunner:0:
list       973   969  0 Jan12 ?        00:01:07 /usr/bin/python /var/lib/mailman/bin/qrunner --runner=IncomingRunner:0
list       974   969  0 Jan12 ?        00:01:01 /usr/bin/python /var/lib/mailman/bin/qrunner --runner=NewsRunner:0:1 -
list       976   969  0 Jan12 ?        00:01:05 /usr/bin/python /var/lib/mailman/bin/qrunner --runner=OutgoingRunner:0
list       978   969  0 Jan12 ?        00:01:06 /usr/bin/python /var/lib/mailman/bin/qrunner --runner=VirginRunner:0:1
list       980   969  0 Jan12 ?        00:00:00 /usr/bin/python /var/lib/mailman/bin/qrunner --runner=RetryRunner:0:1
root      1410     1  0 Jan12 ?        00:00:00 /usr/sbin/saslauthd -a pam -m /var/spool/postfix/var/run/saslauthd -r
root      1413  1410  0 Jan12 ?        00:00:00 /usr/sbin/saslauthd -a pam -m /var/spool/postfix/var/run/saslauthd -r
root      2034     1  0 Jan12 ?        00:00:09 /usr/bin/perl /usr/share/usermin/miniserv.pl /etc/usermin/miniserv.con
proftpd   2054     1  0 Jan12 ?        00:00:07 proftpd: (accepting connections)              
root      2096     1  0 Jan12 ?        00:00:13 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf
root      2173     1  0 Jan12 ?        00:00:15 /usr/sbin/console-kit-daemon --no-daemon
root      2241     1  0 Jan12 ?        00:00:07 /usr/lib/policykit-1/polkitd --no-debug
root      4895     1  0 03:15 ?        00:00:00 /usr/sbin/xinetd -dontfork -pidfile /var/run/xinetd.pid -stayalive -in
www-data  6494 30181  0 03:41 ?        00:00:06 /usr/sbin/apache2 -k start
www-data  6497 30181  0 03:42 ?        00:00:06 /usr/sbin/apache2 -k start
www-data  6499 30181  0 03:42 ?        00:00:06 /usr/sbin/apache2 -k start
www-data  6500 30181  0 03:42 ?        00:00:07 /usr/sbin/apache2 -k start
root      9477 30027  0 05:09 pts/5    00:00:00 sudo ps -ef
root      9478  9477  0 05:09 pts/5    00:00:00 ps -ef
root     27626     1  0 02:44 ?        00:00:00 sendmail: MTA: accepting connections          
root     27902   110  0 02:51 ?        00:00:01 sshd: root@pts/4    
root     27998 27902  0 02:51 pts/4    00:00:01 -bash
root     29931   110  0 02:59 ?        00:00:03 sshd: root@pts/5    
root     30027 29931  0 02:59 pts/5    00:00:00 -bash
root     30181     1  0 03:00 ?        00:00:02 /usr/sbin/apache2 -k start
www-data 30183 30181  0 03:00 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 30636 30181  0 03:06 ?        00:00:13 /usr/sbin/apache2 -k start

2
您重新启动服务器了吗?查看奥利(Oli)答案的评论,重新启动后问题消失了。
douggro 2014年

Answers:


18

我在Ubuntu 16.04.01 LTS上遇到了相同的问题。发生以下日志消息,/var/log/mail.log并且出站邮件发送失败:

postfix/master[5072]: fatal: bind 127.0.0.1 port 25: Address already in use

尝试杀死sendmail时收到以下输出:

$ sudo killall sendmail
sendmail: no process found

以下命令对我有用(无需重新启动服务器):

sudo killall sendmail-mta
sudo service postfix restart

2
那对我有用!荣誉!
Thelambofgoat

10

我遇到了同样的问题,我所做的只是停止发送邮件,重新启动后缀,然后使用以下命令再次开始sendmail:

service sendmail stop
service postfix restart
service sendmail start

一切恢复正常。


9

好吧,答案是非常令人不满意的,但是今天花了很多时间进行此工作之后,我重新启动了服务器,并且postfix现在正在运行。感谢所有提供了一些见识的人。


5

只需终止sendmail进程,然后重试:

sudo kill 27626

要么

sudo killall sendmail

感谢您的回覆Braiam。应该在问题中指定,我实际上给了这两个镜头,并且给了我一个no process found。我将用一些信息来更新问题。
neanderslob 2014年

killall sendmail找不到适合我的任何进程,但ps aux | grep sendmail显示了一个正在运行的进程,通过杀死其PID可以解决问题。它被列为,sendmail: MTA:[...]因此我猜测实际的守护进程已被重新标记,但名称不同。不幸的是,目前无法自己进一步调查。
Synexis


1

您可以使用fuser命令(以root用户身份)来获取侦听端口25的所有进程的列表并将其杀死。

fuser -uv  25/tcp
fuser -kuv 25/tcp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.