Почему делает постсерый не, запускаются правильно на начальной загрузке с Ubuntu 16.04?

Я обновил свой LTS Ubuntu 14.04 до 16.04.1 LTS, и теперь у меня есть проблема с моей постсерой установкой. То, когда я (ре) начальная загрузка сервер, постсерый сценарий запуска, по-видимому, называют, но постсер, не запускается правильно. Только после ручного перезапуска сервиса постсерая работа правильно.

Более подробно: После перезагружают следующие строки, появляются в моем системном журнале:

Dec  1 19:22:14 systemd[1]: Starting LSB: Start/stop the postgrey daemon...
Dec  1 19:22:14 postgrey[998]:  * Starting postfix greylisting daemon postgrey
Dec  1 19:22:15 postgrey[1050]: Process Backgrounded
Dec  1 19:22:15 postgrey[1050]: 2016/12/01-19:22:15 postgrey (type Net::Server::Multiplex) starting! pid(1050)
Dec  1 19:22:15 postgrey[998]:    ...done.
Dec  1 19:22:15 systemd[1]: Started LSB: Start/stop the postgrey daemon.

Когда я затем ps для постсерого не найден никакой процесс. Однако простое sudo systemctl restart postgrey заставляет его работать правильно. Запуск документируется в системный журнал следующим образом:

Dec  1 19:25:54 systemd[1]: Stopping LSB: Start/stop the postgrey daemon...
Dec  1 19:25:54 postgrey[1878]:  * Stopping postfix greylisting daemon postgrey
Dec  1 19:25:54 systemd[1]: postgrey.service: Control process exited, code=exited status=1
Dec  1 19:25:54 systemd[1]: Stopped LSB: Start/stop the postgrey daemon.
Dec  1 19:25:54 systemd[1]: postgrey.service: Unit entered failed state.
Dec  1 19:25:54 systemd[1]: postgrey.service: Failed with result 'exit-code'.
Dec  1 19:25:54 systemd[1]: Starting LSB: Start/stop the postgrey daemon...
Dec  1 19:25:54 postgrey[1886]:  * Starting postfix greylisting daemon postgrey
Dec  1 19:25:54 postgrey[1886]: Pid_file "/var/run/postgrey.pid" already exists.  Overwriting!
Dec  1 19:25:54 postgrey[1893]: Process Backgrounded
Dec  1 19:25:54 postgrey[1893]: 2016/12/01-19:25:54 postgrey (type Net::Server::Multiplex) starting! pid(1893)
Dec  1 19:25:54 postgrey[1886]:    ...done.
Dec  1 19:25:54 systemd[1]: Started LSB: Start/stop the postgrey daemon.
Dec  1 19:25:54 postgrey[1893]: Resolved [localhost]:10023 to [::1]:10023, IPv6
Dec  1 19:25:54 postgrey[1893]: Resolved [localhost]:10023 to [127.0.0.1]:10023, IPv4
Dec  1 19:25:55 postgrey[1893]: Binding to TCP port 10023 on host ::1 with IPv6
Dec  1 19:25:55 postgrey[1893]: Binding to TCP port 10023 on host 127.0.0.1 with IPv4
Dec  1 19:25:55 postgrey[1893]: Setting gid to "120 120"
Dec  1 19:25:55 postgrey[1893]: Setting uid to "112"

Как Вы видите, на этот раз постсерые документы его привязка к правильному порту. Когда я просматриваю мой ps вывод теперь, я вижу рабочий процесс там. Мой вопрос: Почему процесс не запускается правильно, когда это называют во время начальной загрузки? Как я могу точно определить ошибку? Я не мог найти подсказки, что вызывает ошибку, таким образом, любой советует относительно этого, мог бы помочь мне, также. Так как это раньше работало в 14,04 и прекратило работать в 16,04, возможно, это связано с выскочкой по сравнению с systemd?

1
задан 3 December 2016 в 00:48

2 ответа

postgrey проект не включает в systemd "сервисный файл" единицы, и при этом Ubuntu не упаковывает для него. Сервис вместо этого загружается контейнером, который позволяет systemd справляться с сервисами, которые используют более старый sysv "init" сценарии. Это, как предполагается, работает, но добавляет дополнительный слой косвенности и сложности. Я рекомендую попытаться поместить следующее в /etc/systemd/system/postgrey.service:

[Unit]
Description=Postfix Greylisting Service
Before=postfix.service

[Service]
Type=forking
ExecStartPre=-/bin/rm -f /var/run/postgrey.pid
PIDFile=/var/run/postgrey.pid
ExecStart=/usr/local/sbin/postgrey --inet=10025 -d --delay=150 --pidfile=/var/run/postgrey.pid
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target

Затем отключают sysv init версии от того, чтобы быть выполненным:

update-rc.d -f postgrey remove

необходимо будет позволить новому systemd сервису запуститься при начальной загрузке:

 systemctl enable postgrey

Теперь попробовали еще раз запускать сервис с помощью systemd:

 systemctl start postgrey

, Если это все еще сбои для запуска. Проверьте определенный журнал на этот сервис, journalctl -u postgrey и также общий журнал systemd: journalctl.

я также рекомендую отправить патч к postgrey проект добавить systemctl файл единицы к их contrib каталог так в будущем, официальный systemd сервисный файл будет использоваться для запуска сервиса на находящиеся в systemd системы, и слой контейнера не будет требоваться.

2
ответ дан 7 December 2019 в 13:39

У меня была очень похожая проблема об отключенной системе Ubuntu 16 IPv6, и она была связана с неудавшимся IPv6 постсерого, привязывающим порт 10025.

я зафиксировал его путем редактирования /etc/default/postgrey и изменился --inet параметр к:

--inet=127.0.0.1:10025

, Конечно, лучшее решение состояло бы в том, чтобы позволить systemd обработать, это любит описанный в первом ответе и установило --inet параметр в ExecStart= строка к 127.0.0.1:10025

в журналах не было никакой трассировки, пока я не выполнил постсерый двоичный файл в консоли и видел следующее:

ERROR: Can't connect to TCP port 10025 on ::1 [Cannot assign requested address] at /usr/sbin/postgrey line 776.
0
ответ дан 7 December 2019 в 13:39

Другие вопросы по тегам:

Похожие вопросы: