Bug 38045

Summary: На системах с systemd стартует слишком рано
Product: Sisyphus Reporter: Alexei V. Mezin <alexei.mezin>
Component: dante-serverAssignee: alexvm <alexvm>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: alexvm, asy, linbox1
Version: unstable   
Hardware: x86   
OS: Linux   
Attachments:
Description Flags
Патч
none
spec с которым все собирается none

Description Alexei V. Mezin 2020-02-06 14:31:05 MSK
Сизиф, systemd, dante-server-1.4.2-alt2.

При перезагрузке машины почему-то sockd стартует вообще самым первым из всех запускаемых демонов. И ругается в стиле

 error: /etc/sockd.conf: problem on line 50 near token "1080": could not resolve hostname "br0"

Потому что br0 это не имя хоста, а имя сетевого интерфейса. Который, видимо, к моменту старта еще не переименовался. После загрузки системы systenctp start sockd отрабатывает нормально.

Схожая проблема описана тут
https://stackoverflow.com/questions/55063462/dante-socks5-proxy-server-doesnt-start

И там же рекоемндуется попровить зависимости старта, чтоб он запускался после поднятия сети. Да и вообще надо юнит-файлы для systemd в пакет положить!
Comment 1 Alexei V. Mezin 2020-05-26 13:32:52 MSK
Пинг!

Надо юнит-файл в пакет. На каждом новом сервере его вручную создавать очень неудобно. В 2020 году.

cat /etc/systemd/system/sockd.service
[Unit]
Description=SOCKS v4 and v5 compatible proxy server and client
After=network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/sockd
PIDFile=/run/sockd.pid
ExecStart=/usr/sbin/sockd ${EXTRAOPTIONS}

[Install]
WantedBy=multi-user.target
Comment 2 Alexei V. Mezin 2021-12-11 17:34:53 MSK
Created attachment 10057 [details]
Патч
Comment 3 Alexei V. Mezin 2021-12-11 17:35:36 MSK
Created attachment 10058 [details]
spec с которым все собирается
Comment 4 Alexei V. Mezin 2021-12-11 17:39:35 MSK
Этот нужный пакет не пересобирается. Предлагаю собрать его с новой версией, в которой уже есть unit-файл.

Сборка падает на этапе configure, примитивный патч, отключающий падающие проверки, взят тут
https://github.com/buildroot/buildroot/blob/master/package/dante/0002-osdep-m4-Remove-getaddrinfo-too-low-checks.patch

Так же предлагаю в %install добавить unit-файл, и включить его в %files пакета dante-server.

Патч и спек, с которым у меня все собралось, прилагаю.
Comment 5 Sergey Y. Afonin 2024-02-28 23:36:11 MSK
В Сизифе в 1.4.3-alt4 я unit-файл вижу. Может в p10 версию тоже обновить?

А вообще, наверное, всё бы было нормально и с init-скриптом, если бы там LSB заголовок был с "Required-Start: $network"?
Comment 6 UL 2024-03-03 18:12:48 MSK
Предлагаю работающий вариант юнита для включения в пакет

[Unit]
Description=SOCKS v4 and v5 compatible proxy server and client
After=syslog.target network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/sbin/sockd
ExecStop=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target