Startování služeb přes systemd

Startování služeb přes systemd
« kdy: 12. 06. 2025, 15:23:30 »
Ve starším serveru jsem musel vyměnit síťovou kartu, která umřela a měla 4x LAN. Nahradil jsem ji taky kartou se 4x LAN s chipsetem RTL8125B, jenže ta má podporu až v kernelech 5.9 a já mám 5.4 (Ubuntu server 18.04).

Použil jsem ovladač realtek-r8125-dkms z Githubu a karta funguje. Jenže se mi přestaly nahazovat některé služby jako unbound, ntp a rc.local. V rc.local nahazuji síťové rozhraní vboxnet0 pro jeden virtuální stroj a hned potom pravidla pro firewall, aby se uplatnily i na vboxnet0.

Nevím, jak je startování všech služeb seřazeno, ale vím, že se dá v jednotlivých službách nastavovat, na co mají počkat a že se mají spustit až po jiné službě, ale když jsme do toho začal v dobrém úmyslu vrtat, tak jsme to spíše dodrbal, než tomu pomohl. Nevím, na co se mám zaměřit.


Re:Startování služeb přes systemd
« Odpověď #1 kdy: 13. 06. 2025, 10:26:49 »
Je k dispozici systemd-analyze.

Pokud neni k dispozici backport kernel, tak pak uz jen jedine poridit spravnou kartu.

RDa

  • *****
  • 3 058
    • Zobrazit profil
    • E-mail
Re:Startování služeb přes systemd
« Odpověď #2 kdy: 13. 06. 2025, 11:34:54 »
Nebude jednodussi tam dat i350-T4 nebo jindou 2x2 intelovu kartu? (tech 1GbE se vali vsude mraky..  kdyztak mam nejakou v Praze). Alternativne dve dual karty - mate dost slotu ?

Re:Startování služeb přes systemd
« Odpověď #3 kdy: 13. 06. 2025, 11:51:34 »
Ty systemd služby (včetně rc-local), co nenaběhly budou pravděpodobně nastavené, že čekají na kompletní inicializaci sítě.
Tzn. budou mít v sobě něco jako:

[Unit]
..
After=network.target

Podle mě vám tam někde zůstala v konfiguraci viset vazba na starou síťovku, která nikdy nenaběhne.
U Ubuntu mi to přišlo vždycky jako trochu opruz s tím, že se tam standardně používá Netplan, který podle toho jestli je to ubuntu-server, nebo desktop, používá na finální nastavení jako renderer buď systemd-networkd, resp. NetworkManager.
A samozřejmě se to dá všechno také různě přenastavit, hodit do toho ještě ruční inicializace (třeba přes rc.local) atp.
Asi bych zkontroloval, co je v .yaml souborech v /etc/netplan a jestli tam není ještě něco související se starou síťovkou.
Možná tam bude i nějaký automaticky generovaný soubor z cloud-initu.
Odebral bych, co přebývá, a zkusil netplan --debug apply.

Jinak 18.04 je víc jak dva roky EOL (žádné záplaty mimo UbuntuPro, staré certifikáty...) Místo opičáren s out-of-tree modulem by bylo možná lepší rovnou přejít na nějakou novou, podporovanou LTS distribuci.
Ten VirtualBox nahradit rychlejším KVM/QEMU (klidně s nějakým přivětivým ksichtíkem okolo libvirtd/virt-manager nebo Incus, jestli máte rád Canoncial  ;))

Re:Startování služeb přes systemd
« Odpověď #4 kdy: 13. 06. 2025, 16:08:47 »
Děkuji za příspěvky. Na systemd-analyze se určitě podívám. PCIE sloty nazbyt právě nemám, protože deska je mini-ITX s jedním PCIE 16x. To starší Ubuntu nemá netplan, ale interfacy nahazuji ještě v /etc/network/interfaces.

Dnes jsem se zkoušel aktualizovat initramfs a do rc.local jsem před nahozením firewallu přidal 5 sekundový sleep a nyní se nahodí vše až na ntp, ale nakonec rc.local jsem přidal restartování ntp služby a takhle to zatím funguje.


Re:Startování služeb přes systemd
« Odpověď #5 kdy: 13. 06. 2025, 20:43:18 »
Právě že v Ubuntu 18.04 už byl stoprocentně ve výchozí, čisté instalaci používaný Netplan.
Ten legacy ifupdown (tzn. /etc/network/interfaces jako na klasickém Debianu) se musel explicitně přepnout.
Klíčová věc tohohle kroku bylo správně zastavit a zamaskovat služby systemd-networkd (na serveru, na desktopu to byl NetworkManager), které nahrazuje networking.service z balíčku ifupdown.
Mrkněte na první odpověď, tam je to přesně rozepsané:
https://askubuntu.com/questions/1031709/ubuntu-18-04-switch-back-to-etc-network-interfaces

Určitě bych u vás zkontroloval stav těch služeb.
A samozřejmě by měl být vidět stav celého toho targetu: systemctl status network.target
a v žurnálu by od bootu mělo být případně vidět, kdy co naběhlo.

Ten sleep s bulharskou konstantou a preventivní restart ntp klienta je samozřejmě taky cesta, pokud to zabírá :)
Ale jak jsem zmiňoval, osobně bych si asi udělal čas a vzal to nejspíš celé z gruntu.

Re:Startování služeb přes systemd
« Odpověď #6 kdy: 14. 06. 2025, 06:08:48 »
Tohle systemd-analyze plot > boot_stat.svg
mi hezky vytvořilo graf a v něm červeně zvýraznilo časy všech dlouze spouštěných služeb a největší žrouti času jsou tito

rc-local.service (8.600s)
mysql.service (7.869s)
influxdb.service (5.130s)
unbound.service (4.645s)
ntp.service (4.234s)
dev-sdc1.device (4.070s) - systémové SATA SSD
telegraf.service (3.249s)


Na rovinu, ten můj server je neskutečná slátanina, ale funguje od roku 2016. Někdy se chystám, že to předělám úplně na jiný strojek, který pojede na Proxmoxu. Začínal jsem na Ubuntu 16.04, proto asi /etc/network/interfaces a na 18.04 šel ještě povýšit, ale na 20.04 se to nepodařilo. Začal jsem používat něco zkompilované z githubu, takže jsem některé aktualizace pozdržel, mám dost ručně přidaných repozitářů, ale je na něm zapnutá podpora až do roku 2028. Dnes se už přikláním k Debianu.