Start služeb vs. síťová rozhraní - Debian 10.1 ve virtuálu

Dobry den.

Rad bych pozadal o radu. Presouvam servery z fyz. zeleza do virtualizace. Narazil jsem na neprijemny problem. Pokud mam u sitove sluzby definovanu adresu, na ktere ma poslouchat, casto se stava, ze prestoze v definici systemd unity je

Kód: [Vybrat]
After=sysinit.target network.target basic.target system.slice systemd-journald.socket

sluzba nenastartuje, protoze sitove rozhrani v ten moment jeste neni k dispozici.
Typicky snmpd:

Kód: [Vybrat]
Sep 16 10:06:54 server systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Sep 16 10:06:54 server systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
Sep 16 10:06:54 server snmpd[698]: /etc/snmp/snmpd.conf: line 149: Warning: Unknown token: defaultMonitors.
Sep 16 10:06:54 server snmpd[698]: /etc/snmp/snmpd.conf: line 151: Warning: Unknown token: linkUpDownNotifications.
Sep 16 10:06:54 server snmpd[698]: Turning on AgentX master support.
Sep 16 10:06:54 server snmpd[698]: Error opening specified endpoint "udp:10.49.33.20:161"
Sep 16 10:06:54 server snmpd[698]: Server Exiting with code 1
Sep 16 10:06:54 server systemd[1]: snmpd.service: Main process exited, code=exited, status=1/FAILURE
Sep 16 10:06:54 server systemd[1]: snmpd.service: Failed with result 'exit-code'.

Sluzbu ale staci restartnout je vse je ok.

Kód: [Vybrat]
Sep 16 10:10:02 server systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Sep 16 10:10:02 server systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
Sep 16 10:10:02 server snmpd[1177]: /etc/snmp/snmpd.conf: line 149: Warning: Unknown token: defaultMonitors.
Sep 16 10:10:02 server snmpd[1177]: /etc/snmp/snmpd.conf: line 151: Warning: Unknown token: linkUpDownNotifications.
Sep 16 10:10:02 server snmpd[1177]: Turning on AgentX master support.
Sep 16 10:10:02 server snmpd[1177]: NET-SNMP version 5.7.3

IMHO pricinou  je paralelizace startu a virtulani hw ktery je  "velmi rychly". Velmi neprijemne je to to treba u SSH.
Ma tohle nejake reseni?

Diky
A.
« Poslední změna: 16. 09. 2019, 22:29:56 od Petr Krčmář »


Re:Start sluzeb vs. sitova rozhrani - Debian 10.1 ve virtualu
« Odpověď #1 kdy: 16. 09. 2019, 15:41:08 »
Asi jde o obecny problem paralelizace startu, protoze neco podobneho se deje, pokud napr. nejaky demon potrebuje otevrit socket poskytnuty jinym demonem. Kuprikladu snmpd poskytuje socket: /var/agentx/master. Pokud mam jineho demona, ktery je na nem zavisly a potrebuje ho, tak by mel logicky startovat az po snmpd, coz se deje.

Nicmene direktivy After ani Requires v konfiguraci zavisle unity nepomahaji a nedokazi zarucit, ze se  /var/agentx/master vytvori vcas. >:( Restart to pochopitelne vyresi, resp. da se to obejit pomoci:

[Service]
ExecStartPre=/bin/sleep 2

Coz je tedy neni uplne hezke reseni. Verim, ze se s tim musel uz nekdo potkat...

Re:Start sluzeb vs. sitova rozhrani - Debian 10.1 ve virtualu
« Odpověď #2 kdy: 16. 09. 2019, 16:53:55 »
Dobry den.

Rad bych pozadal o radu. Presouvam servery z fyz. zeleza do virtualizace. Narazil jsem na neprijemny problem. Pokud mam u sitove sluzby definovanu adresu, na ktere ma poslouchat, casto se stava, ze prestoze v definici systemd unity je

After=sysinit.target network.target basic.target system.slice systemd-journald.socket

sluzba nenastartuje, protoze sitove rozhrani v ten moment jeste neni k dispozici.
Na tohle téma je poměrně obsáhlý text v dokumentaci systemd. Jinak obecně, ten nejefektnější způsob, jak toto vyřešit, je použít režim soketové aktivace, kdy soket vytvoří přímo systemd a teprv až na něj přijde spojení, nastartuje příslušného démona. To ale vyžaduje podporu na straně démona. Spousta démonů takovou podporu už má.

Re:Start sluzeb vs. sitova rozhrani - Debian 10.1 ve virtualu
« Odpověď #3 kdy: 16. 09. 2019, 19:47:35 »
Diky za nasmerovani. Vypada to nadejne.