Рейтинг:1

Postfix вызывает проблемы, когда его служба включена с помощью systemctl и не запускается при загрузке.

флаг ae

На Рокки Линукс с версией 8.5 (совместимый с Red Hat Enterprise Linux, совместимый с ошибками), я настроил установку Postfix + Dovecot. После устранения всех ошибок конфигурации я дошел до того, что обе службы по крайней мере запустились.

systemctl включить dovecot.service
systemctl включить postfix.service

После перезапуска машины я мог видеть, что Dovecot запускается правильно при запросе с использованием статус systemctl голубятня. Postfix, с другой стороны, не запустился, сообщив:

[root@mail ~]# постфикс состояния systemctl
✓ postfix.service — почтовый транспортный агент Postfix.
   Загружено: загружено (/usr/lib/systemd/system/postfix.service; включено; предустановка поставщика: отключена)
   Активно: не удалось (Результат: код выхода) с ...; 12 минут назад
  Процесс: 1419 ExecStart=/usr/sbin/postfix start (code=exited, status=1/FAILURE)
  Процесс: 1396 ExecStartPre=/usr/libexec/postfix/chroot-update (код=выход, статус=0/УСПЕХ)
  Процесс: 1364 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)

systemd[1]: Запуск почтового транспортного агента Postfix...
postfix/postfix-script[1506]: фатально: почтовая система Postfix уже запущена
systemd[1]: postfix.service: процесс управления завершен, code=exited status=1
systemd[1]: postfix.service: Ошибка с результатом «код выхода».
systemd[1]: не удалось запустить почтовый транспортный агент Postfix.

Быстрая проверка с помощью постфиксный статус показало, что он действительно не работает. Удивительно, однако, постфиксное начало затем запустил службу без каких-либо проблем. Запрос постфиксный статус затем сообщил, что Postfix успешно работает с новым PID. Запрос постфикс состояния systemctl еще раз после этого показал неизмененный отчет об ошибке из предыдущего.

Однако сообщение об ошибке не имеет смысла. Я могу systemctl отключить постфикс, перезагрузите машину, проверьте, действительно ли Postfix не работает, используя оба постфикс состояния systemctl и постфиксный статус, попробуйте включить его с помощью systemctl стартовый постфикс и получить ту же ошибку.

Кроме того, если я оставлю службу Postfix отключенной в systemd, перезагрузите машину и запустите ее только с постфиксное начало, служба запускается, но постфикс состояния systemctl сообщает, что он загружен, неактивен...

[root@mail ~]# начало постфикса
postfix/postfix-script: запуск почтовой системы Postfix
[root@mail ~]# статус постфикса
postfix/postfix-script: работает почтовая система Postfix: PID: 2169
[root@mail ~]# постфикс состояния systemctl
✓ postfix.service — почтовый транспортный агент Postfix.
   Загружено: загружено (/usr/lib/systemd/system/postfix.service; отключено; настройка поставщика: отключена)
   Активный: неактивный (мертвый)
[root@почта ~]#

Почему Postfix на RHEL даже регистрируется как сервис, если он категорически отказывается работать как таковой? И как тогда правильно обеспечить запуск Postfix при загрузке?

Примечание: Я пытался постфикс chkconfig включен как я нашел это предложили люди в Интернете. Это просто перенаправляет запрос на systemctl включить postfix.service что возвращает меня к началу.

... мне действительно нужно взломать его, используя /etc/rc.local, когда содержимое самого файла говорит, что оно существует только для целей совместимости, его больше нельзя использовать, и мне следует подумать о работе с службами systemd?

ОБНОВЛЕНИЕ 1: Я пошел с тем, что казалось разумным обходным путем на данный момент - запуск постфикса с использованием постфиксное начало командовать /etc/rc.local. После перезагрузки Postfix все еще не работал. Проверка состояния службы rc-local с помощью статус systemctl rc-local, служба не запустилась, причина в журналах точно такая же, как причины, указанные в журналах службы Postfix после того, как я включил ее через systemctl - "фатально: почтовая система Postfix уже запущена".Postfix просто не запускается при запуске при любых условиях.

Рейтинг:1
флаг cn

Это похоже на конфликт SysV и systemd. Попробуйте отключить службу в systemd и перезагрузиться и посмотреть, работает ли она. Скорее всего будет запущено.

sudo systemctl отключить posfix
судо инициализация 6

Обратите внимание, что я использую инициализация 6 потому что это самый грубый способ перезагрузки. перезагрузка и неисправность функции делают дополнительные вещи, которые может вызвать побочные эффекты. На самом деле новейший метод перезагрузка системы, но я еще не использовал его.

Это не должно вызывать ошибок, и, скорее всего, оно будет запущено.

Если вы используете SysV, вы должны увидеть ссылки под /etc/rc?.d (куда ? это число от 1 до 6), которые относятся к постфиксу.

Кроме того, может случиться так, что postfix определяет, что он уже запущен, проверяя файл PID вместо того, действительно ли запущен процесс с этим PID. Это будет моя следующая попытка. Я часто делаю чистую остановку перед запуском, когда процесс не запускается, поэтому у таких очисток есть шанс сбросить:

systemctl остановить постфикс
systemctl стартовый постфикс
Marty Cagas avatar
флаг ae
Спасибо за ваш ответ! После отключения Postfix в _systemd_ и перезагрузки он не запускался ни при проверке `systemctl status postfix`, ни `postfix status` (который, насколько мне известно, является их собственной оболочкой для управления сервером). Я посмотрю на SysV и посмотрю, смогу ли я заставить его запускаться при запуске таким образом.
Marty Cagas avatar
флаг ae
В конце концов, проблема была не в SysV, а в том, что я использовал «перезагрузку» вместо правильного «init 6» или «перезагрузка systemctl». Как объясняется в другом ответе [здесь] (https://unix.stackexchange.com/a/64385/383614), они технически различаются, и в этой ситуации разницы было достаточно, чтобы сломать Postfix.Я не смог бы понять это без вашего ответа, поэтому мне кажется неправильным писать свой собственный и принимать его, но ради того, чтобы кто-то в будущем боролся с той же проблемой, не могли бы вы отредактировать упоминание об этом в своем отвечать?
флаг cn
@MartyCagas Готово.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.