Portál AbcLinuxu, 2. května 2025 16:47
Na většině linuxových systémů se používá nějaká reinkarnace SysV Init, který je tu s námi už čtvrt století. Když se podíváte do skriptů v /etc/init.d/, zjistíte, že obsahují obrovské množství duplicitního kódu. Co zkusit spouštění služeb implementovat jinak?U vsech rohatych proc by to mel byt problem a proc by se to melo delat jinak (komplikovaneji)?
Na systemd mě nejvíc zaujalo, že spouští procesy na popředí a nekrade jim terminálCo to je?
Naopak mi přijde zbytečná honba za paralelním bootováním, když už máme na většině počítačů funkční uspávání.Coz o to, uspavani opravdu funguje skoro vsude. Ale funkcni probuzeni jsem snad jeste nevidel. Vyhodil bych systemd ze sveho openSUSE, ale zavisi na nem fura balicku a porusit zavislosti se mi dvakrat nechce. Nastesti se to da omezit alespon trochu.
Coz o to, uspavani opravdu funguje skoro vsude. Ale funkcni probuzeni jsem snad jeste nevidel.Já jo. Než jsem aktualizoval jádro. Někdy se to neprobudí, někdy se to probudí a do minuty se to zasekne, někdy to přežije
Co to je?Že nemůžeš rozumně spustit tohle:
#!/bin/bash while true; do date >> /tmp/foo sleep 1 donejako démon, tj. démonizaci si musíš řešit nějakým wrapperem sám. Maximálně můžeš použít start-stop daemon s -b, ale pak okamžitě po spuštění nad tím procesem ztratíš kontrolu.
-b, --background Typically used with programs that don't detach on their own. This option will force start-stop-daemon to fork before starting the process, and force it into the background. WARNING: start-stop-daemon cannot check the exit status if the process fails to execute for any reason. This is a last resort, and is only meant for programs that either make no sense forking on their own, or where it's not feasible to add the code for them to do this themselves.
A že by běžely napopředí...RTF[MDA]
nevím o tom, že bych s nimi mohl interaktivně komunikovat.Viz klíče
StandardInput
, StandardOutput
a StandardError
v .service souborech.
Že zrovna ty se budeš brblat o něčem, u čeho neznáš základní principy fungování, bych teda nečekal.
Viz klíče StandardInput, StandardOutput a StandardError v .service souborech. Že zrovna ty se budeš brblat o něčem, u čeho neznáš základní principy fungování, bych teda nečekal.Právěže znám, proto mě to tvrzení udivuje a opravdu mě zajímá nějaký rozumný důvod, proč si nemám myslet, že to jsou plané kecy. Mně bohužel už neudivuje, že se vždycky najde někdo, kdo se místo pokusu o obhájení či vyvrácení nějaké myšlenky, pokusí pouze shodit tazatele.
Zatímco systemd ho prostě spustí a nechá běžet (jak se to řeší interně, to ale netuším).Ono totiž interně není moc co řešit. Systemd se navenek projevuje jako démon, nešpiní žádný terminál, nepřekáží žádnému shellu. A tudíž když se systemd forkuje, tak vzniká opět démon s očekávanými vlastnostmi. Odpoutání od terminálu nepotřebuješ, protože systemd funguje jako klient-server, nový démon se forkuje přímo ze systemd, ne z příkazu service či initskriptu. To má spoustu důležitých důsledků třeba i v oblasti selinuxu. Démon neboli služba je něco, co běží napozadí a není to přilepeno k uživatelskému terminálu. Přesměrování vstupu a výstupu se dá v systemd pro jednotlivé služby nastavit, případně může celá služba fungovat pomocí stdin/stdout jako když ji pouštíš z inetd/xinetd.
no tak, nemusíš to hned na druhém zanoření nazývat planými kecy…No, nemusím, dokonce jsem to ani přímo neudělal, ale to o odpojování terminálu a běhu napopředí mi tak opravdu připadá. Že seš to ty, tak to můžeme nazývat třeba matením, to zní lépe, ne?
lattéMaté.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.