попытка установить emailrelay на CentOS Linux 3.10.0 -1127.19.1.el7.x86 _64

В некотором роде, у меня был сервис systemd, который, как оказалось, systemd «убьет» его через 30 с.

systemctl status service-nameпокажет main process exited, code=exited, status=1/FAILUREпо истечении 30 секунд.

Он будет нормально работать "изолированно" (, например, вручную в терминале с той же средой).

Оказывается,

Type=forking
...
Environment=ABC="TRUE"
ExecStart=/path/to/my_script_to_spawn_process.sh

в my_script_to_spawn_process.shон делал

/bin/something > /dev/null 2>&1 &

который работает, но отбрасывает информацию журнала вывода (обычно он идет к файл, или, если не это, возможноjournalctl).

Изменение его для входа в другое место, например/bin/something > /tmp/my_file

, а затем отслеживание /tmp/my_fileвыявило настоящую причину. Это было (по касательной ), что вы не можете использовать синтаксис Environment=ABC="true", как вы можете в bash, это должно быть без кавычек или ключевое значение все в кавычках, например Environment="ABC=true", из-за чего мой процесс завершался «на этапе настройки» примерно через 30 с.

0
08.05.2021, 22:38
2 ответа

Вам нужна версия библиотеки libstdc++.so, которая содержит как минимум GLIBCXX 3.4.20и CXXABI_1.3.8.

Из версии ядра вы используете CentOS 7, где версия libtsdc++.soнедостаточно свежая.

Вы можете увидеть это с помощью команды:

strings -d /usr/lib64/libstdc++.so.6 | grep -Ei '^glibcxx|^cxxabi'

Вы увидите, что у вас есть максимум 3.4.19 и 1.3.7 соответственно, потому что CentOS 7 имеет GCC 4.8.5, который был выпущен 23 июня 2015 года.

Я бы порекомендовал GCC 8, который намного более поздний и включает версию libstdc++.so, которая вам нужна. Вам придется скомпилировать его из исходного кода и добавить в свою LD _LIBRARY _PATH, а затем скомпилировать emailrelayиз исходного кода, так как RPM будет искать пакет, содержащий более новую версию, для установки в вашей системе. что невозможно из-за конфликтов.

0
28.07.2021, 11:33

Вы можете сделать то, что вы описываете, используя пакет postfix, уже доступный в CentOS. Не нужно полагаться на сомнительный RPM на sourceforge.

Существуют десятки руководств по настройке постфикса для использования узла ретрансляции smarthost через gmail. Вот руководство, в котором есть все шаги.

После настройки вам нужно будет открыть брандмауэр, чтобы хост Windows мог обращаться к порту 25 на сервере CentOS.

1
28.07.2021, 11:33

Теги

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