Ошибка запуска Postfix. Порт 25: Адрес уже используется

19

Я пытаюсь запустить postfix на моем сервере, но продолжаю получать следующую ошибку в моем /var/log/mail.log:

postfix / master [5041]: fatal: bind 0.0.0.0 порт 25: адрес уже используется

Я провел некоторый поиск и нашел этот отличный ответ от Оли (относительно этого вопроса), в котором рекомендуется в основном избавить свой сервер от пакетов sendmail, чтобы избежать конфликтов, а затем переустановить postfix, который, в свою очередь, установит собственную марку sendmail. К сожалению, это не совсем решило проблему (см. Ниже).

Я следовал инструкциям и провел следующую проверку, на которую получил обнадеживающий ответ:

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

Однако, когда я снова запустил postfix, я получил ту же ошибку.

Согласно непредвиденным обстоятельствам Оли, я искал процесс, который загружал порт 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, так что могу только предположить, что собственная версия sendmail postfix захватывает порт? Я даже не знаю, имеет ли это смысл.

В любом случае, если бы кто-нибудь мог мне прямо сказать об этом или хотя бы дать несколько интересных диагностических вопросов, я был бы признателен.

В случае, если это полезно, я использую 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
neanderslob
источник
2
Вы перезагрузили сервер? Глядя на комментарии из ответа Оли, проблема ушла после перезагрузки.
Дуггро

Ответы:

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
kjones
источник
2
Это сработало для меня! Престижность!
Thelambofgoat
10

У меня была та же проблема, и я только остановил отправку почты, перезапустил postfix и снова запустил sendmail с помощью следующих команд:

service sendmail stop
service postfix restart
service sendmail start

Все вернулось просто отлично.

Сильвен Райе
источник
9

Что ж, ответ совершенно неудовлетворительный, но после нескольких часов работы над этим сегодня я перезапустил сервер, и теперь постфикс работает. Спасибо всем, кто предоставил некоторое понимание.

neanderslob
источник
5

Просто убейте процесс sendmail и попробуйте снова:

sudo kill 27626

или

sudo killall sendmail
Braiam
источник
Спасибо за ответ Брайам. Должен был указать в вопросе, я на самом деле дал обоим из них выстрел, и это дает мне no process found. Я обновлю вопрос с этой информацией.
neanderslob
killall sendmailЯ не нашел никаких процессов для меня, но ps aux | grep sendmailпоказал один запущенный, и убийство по его PID решило проблему. Он был указан как, sendmail: MTA:[...]так что я предполагаю, что сам процесс демона был помечен, но имеет другое имя. К сожалению, в настоящее время я не могу продолжать расследование.
Synexis
4

Для меня решение было sudo killall sendmail-mta

Матис Логеманн
источник
1

Вы можете использовать fuserкоманду (как root), чтобы получить список всех процессов, прослушивающих порт 25, и уничтожить их.

fuser -uv  25/tcp
fuser -kuv 25/tcp
Анфи
источник