Proc se to stalo v Archu hezky trebas tu:
https://www.reddit.com/r/archlinux/comments/4lzxs3/why_did_archlinux_embrace_systemd/
To, že se někdo nějak rozhodne, ještě není záruka toho, že je to rozhodnutí správné.
Jenže on je problém někde trošku jinde. O systemd se od začátku, aspoň co vím, hovořilo jako o náhradě initu(ů). Jenže postupem času polyká co potká - viz třeba Cron .- a taky už to není ten opravený mezičlánek, ale začal žít svým životem a nyní už po všech ostatních požaduje, aby se přizpůsobovali. Zavádí nové "móresy" a, lidově řečeno, "sere se do do čeho nemá". Když se k tomu přidá brzké nasazení, neustálý vývoj/změny/převraty fungování rozhodně nejsou vhodné pro produkční prostředí. Jasně, zatím je tu Devuan a Gentoo, ale jak dlouho, když už některé aplikace bez systemd nejedou ( ne že by jenom neposkytovali plnou funkcionalitu)
Něco takového nasadit M$, tak má výsměch na měsíc.
"O systemd se od začátku, aspoň co vím, hovořilo jako o náhradě initu(ů)."
Schvalne jsem si znovu prosel asi prvni clanek o systemd: http://0pointer.de/blog/projects/systemd.html
..a nemas pravdu. Jasne tam pise o rizeni session, logovani, cronu a dalsich vecech. Coz dava smysl, proste cilem systemd je rizeni dlouhodobe bezicich procesu na systemu.
Velmi se mi libil ten komentar, co tu odkazoval Ondrej Nekola, od maintainera Archu. To presne ukazuje, proc se nikdo uz k init scriptum vracet nebude. Monoliticky nebo ne, neco jako systemd je nevyhnutelna budoucnost.
Jenže já nemluvil o tom, co se psalo v nějakém "asi prvním článku". Já mluvil o tom, co se první doby omílalo jako ta velká věc a každý pořád opakoval,že je potřeba nahradit init - asi s důsledky, jak je dnes vidět.
Ten komentář tu s F.Jirsákem dávají na střídačku, ale tam se píše spíš o nevýhodách initu.
Ale nevím, jestli je řešení odstranit jednu problémovou část a nahradit ji druhou problémovou, která z odtud navíc jde ještě hůře vysekat, protože postupem času pohlcuje celý systém a nutí externí aplikace do přecházení na závislost k jejímu API. Nic proti pánovi, ale to že je někdo aktivní a dobrý programátor a že zrovna dělá takovou "populární věc" neznamená, že bude dělat neomylná manažerská rozhodnutí každým krokem.
A to je právě to o čem jsem psal. Nejde o to, jestli je lepší tamten init nebo onen, nebo nějaký jiný, ale jde o to, že se zde tvoří 1/2 system "komponenta", takové win32, které neustále akorát vyžaduje nějaké přizpůsobení od ostatních, rozděluje aplikace na podporované a nepodporované ale co nejhůře, tak to není production ready a pořád do toho někdo jebe a vytváří konstrukce, které jsou neobvyklé - jako odhlašování z konzole a ukončení programů . . . To je ten problém. Ten problém, že se sere na vše ostatní a patlá se něco, co se ostatním nutí kompatibilitou.
No samozřejmě že mě nikdo nenutí používat LInux - ale tohle je ten účel? To je ten požadovaný výsledek?
To, co popisujete, ale není problém SystemD, nýbrž problém toho, že se spoustu let na správu služeb v Linuxu kašlalo a lepilo se to různými rovnáky na vohejbáky. SystemD se teď snaží tyhle rovnáky na vohejbáky odstranit – což samozřejmě znamená nekompatibilní změny, protože rovnák na vohejbák nemůžete spravit tím, že k tomu přidáte další vohejbák. Úplně stejně by to bylo s jakýmkoli jiným systémem, který by chtěl správu služeb udělat pořádně.
Druhá možnost by byla dělat to postupně, po malinkých krůčcích. Vzít jeden rovnák na vohejbák, vedle něj postavit o něco rovnější alternativu, která by pořád byla napojená na ostatní rovnáky na vohejbáky, a čekat několik let, než na to všichni přejdou, aby bylo možné ten jeden rovnák na vohejbák odstranit. Tohle zkoušely jiné „nové inity“, jenže to nikam nevedlo – protože s přechodem stejně byly problémy (nikdy se to staré zprasené řešení nepodařilo emulovat úplně stoprocentně), ale moc výhod to nepřinášelo (protože tam bránily ty jiné rovnáky na vohejbáky). Pak konečně někomu došlo, že tohle není cesta, že jediná možnost je do toho říznout a udělat to rovnou celé pořádně – přechod sice bude bolet, ale nebude to na desítky let.
Že to bylo správné rozhodnutí je jasné už teď, svědčí o tom to, kolik distribucí už na SystemD přešlo a to, že možnosti, které přináší SystemD, začínají aplikace využívat, i za cenu toho, že se na SystemD stávají závislé. Spousta lidí na SystemD nadává, přičemž drtivá většina z nich nadává na všechno nového a na všechno, na co je moderní nadávat. Stačí si přečíst tuhle diskusi, kolik lidí na SystemD nadává, přitom ho nepoužívají a „argumentují“ výmysly a nesmysly. Vedle nich je pak hrstka těch, kteří mají sice oprávněné námitky, ale vedle systemd-haters není jejich hlas slyšet. A pořád platí, že ty oprávněné námitky je lepší převtělit do patchů, protože podporovat systemd-haters v diskusích je k ničemu. Pokud si někdo myslel, že se při vymetání toho chléva současné správy služeb nezašpiní a všechno bude čisťounké a uhlazené, tak je prostě naivní – náhrada novým řešením se dělá právě proto, že to staré je špatné a neudržovatelné, a jakýkoli pohyb okolo znamená, že se zašpiníte.
Ad není to production ready – není to tak dávno, co se jako výhoda opensource uvádělo to, že se nové verze vydávají často, takže si někde někdo potajmu několik let nepíše svůj geniální software, který pak vydá a zjistí se, že je k ničemu. Místo toho časté vydávání umožňuje rychle reagovat na změny a na problémy, na které se přijde až během používání.
Problém všech těchto diskusí je klasický. Jeden o voze, druhý o koze. Někdo na systemd něco kritizuje a hned přispěchá někdo jiný a prohlásí, že správu služeb bylo nutné vyměnit. Ano, spousta lidí si myslela, že init / rc je nutné vyměnit, přišel systemd, nahradil init / rc a spousta lidí byla spokojena, jak mají krásný nový init systém. A třeba si i mysleli, že u toho zůstane. Jenže háček už se zasekl a z původní náhrady init / rc se postupně stává náhrada všeho.
Takže otázka: jak souvisí správa služeb třeba právě s tím .device a .mount?
PS: Po dnešní diskusi mám velmi nepříjemný pocit, že se časem dočkáme systemd-filesystemd a filesystemctl a fstab bude označen jako obsolete a zrušen. Pokud tady někomu přišla reakce systému, tak, jak jsem ji popsal, normální, tak jistě není první, koho to napadlo a za pár verzí to tam máme.
Aha, tak to jo no :-D Koukám, že už ty diskuse nejsou co bývaly. Na abclinuxu nějaký zoufalec do omrzení opakuje "když si to trh přeje" a teď se dočkám odpovědi, že je to prostě služba (bez dalšího vysvětlení, proč si někdo myslí, že je to služba). Tak jo.
Ale nedá mi to, fakt by mě zajímalo, co přesně za problém způsobovalo to, když během bootu nastartovaly všechny potřebné block device a podle fstabu se automaticky připojilo, co bylo nakonfigurované. Co je na tom potřeba ohýbat (nebo rovnat, nebo co s tím ten systemd vlastně dělá).
Nenapadlo mne, že je nutné vysvětlovat, proč je to služba. Někdo jiný to využívá, může to záviset na dalších službách, další služby na tom mohou záviset, v průběhu běhu systému služba může být zahájeno poskytování té služby a může být ukončeno.
Ten váš popis zacházení s přípojnými body například vůbec neřeší připojování a odpojování zařízení za běhu, neřeší uživatele (když uživatel sedí u PC a připojí k němu flash disk, chce ho mít dostupný pod svým účtem), neřeší připojování síťových úložišť (která je potřeba připojovat až po zprovoznění sítě). Ano, na všechno z toho existují nějaké workaroundy. Ale jakou výhodu má používání těch workaroundů?
Upozorňuji, že se bavíme o statickém device, kde je fs, který je očekáván od startu počítače. Tohle ale na druhou stranu krásně ukazuje přístup systemd. Protože je (asi, podle někoho) nějaký problém s flashkama, tak rovnou rozbijeme všechno ostatní.
Ten váš popis zacházení s přípojnými body například vůbec neřeší připojování a odpojování zařízení za běhu
Ano, neřeší. Není žádný důvod, aby řešil. Pokud si admin chce připojit nějaké block device za běhu, tak asi ví co dělá a příslušný mount, nebo pvscan, anebo mdadm -A, nebo luskOpen nebo btrfs device scan nebo cokoliv, si prostě sám spustí, kdy potřebuje.
neřeší připojování síťových úložišť (která je potřeba připojovat až po zprovoznění sítě)
To, kupodivu, také nebyl nikdy problém. Pokud nějaký automaticky mountovaný fs ve fstabu vypadal jako NFS, tak se, po spuštění sítě, prostě spustila služba, která jej připojila. Jestli je to workaround, nevím. Možná, aby to někoho nedráždilo, se to mohlo oddělit na fstab a netfstab. Nebo si to dotyčný admin může dát do autofs. Ne, místo toho, bylo opět potřeba rozkopat něco, co fungovalo.
Upozorňuji, že se bavíme o statickém device, kde je fs, který je očekáván od startu počítače.
O tom se bavíte vy. Já nevidím jediný důvod, proč by se souborový systém na trvale připojeném lokálním zařízení měl připojovat nějak jinak, než souborový systém na dočasném nebo síťovém zařízení.
Tohle ale na druhou stranu krásně ukazuje přístup systemd.
Ano, ukazuje to přístup systemd. Je nějaký důvod, proč řešit lokální souborové systémy zvlášť, síťové souborové systémy zvlášť, dynamické připojování a odpojování souborových systémů zvlášť? Ano, je – vždycky se to tak dělalo, protože to jinak nešlo. Věcný důvod k tomu není žádný. Je „vždycky se to tak dělalo, protože to jinak nešlo“ dostatečný důvod? Ne, není. Tak to pojďme udělat pořádně.
Protože je (asi, podle někoho) nějaký problém s flashkama, tak rovnou rozbijeme všechno ostatní.
Problém je v tom, že se jedna a ta samá věc řeší pokaždé jinak. „Rozbijeme všechno ostatní“ – nevšiml jsem si, že by to něco rozbilo. Rozbíjí se to těm, kteří to mají špatně nakonfigurované. To ale není žádná specialita systemd – když si špatně nakonfigurujete fstab, také se vám to rozbije.
Pokud si admin chce připojit nějaké block device za běhu
Jenže se nepíše rok 1970, ale 2016. K tomu, abych si připojil k počítači flashku nebo cloudové úložiště nepotřebuju admina.
Pokud nějaký automaticky mountovaný fs ve fstabu vypadal jako NFS, tak se, po spuštění sítě, prostě spustila služba, která jej připojila. Jestli je to workaround, nevím.
Ano, je to workaround. Mount musí odhadovat, jestli záznam ve fstabu vypadá jako NFS. Když chcete začít podporovat nový síťový souborový systém, musíte naučit mount ho rozpoznávat (to je asi ta slavná modularita – mount musí znát všechny možné síťové souborové systémy). Když je připojení souborového systému závislé na síti, možná to rozpozná mount. Když je připojení souborového systému závislé na přítomnosti nějakého zařízení, bude se to rozpoznávat jinak. Když je závislé na nějaké další službě, bude se to rozpoznávat ještě jinak. K čemu je to dobré? Není lepší, aby se o závislosti staral správce služeb, tak, jako to dělá u jiných služeb?
Možná, aby to někoho nedráždilo, se to mohlo oddělit na fstab a netfstab. Nebo si to dotyčný admin může dát do autofs. Ne, místo toho, bylo opět potřeba rozkopat něco, co fungovalo.
Ano, bylo možné přidávat další rovnáky na vohejbáky. A nebo to udělat znovu a pořádně, s přihlédnutím k dnešním potřebám a možnostem. Někomu, kdo se naučil vykličkovat s těmi rovnáky na vohejbáky, přesvědčil sebe a ostatní, že něco nejde, může vadit, že je to teď najednou přímočaré a jde to. Ale jinak nevidím výhodu v tom lepení různých workaroundů. Umožňují něco, co se systemd nejde udělat? Nebo v čem je problém?
Já nevidím jediný důvod, proč by se souborový systém na trvale připojeném lokálním zařízení měl připojovat nějak jinak, než souborový systém na dočasném nebo síťovém zařízení.
Ony se ve skutečnosti připojovaly stejně. Příkazem mount (a ne, opravdu nemusí hádat, co je to za fs, protože to má napsané ve fstabu. I ten nfs tam je.).
I tu slavnou flashku si uživatel mohl připojit, pokud byl v příslušné skupině a admin zadal příslušnou řádku do fstab s user.
nevšiml jsem si, že by to něco rozbilo
Já jo. Vám opravdu připadá koncepčně normální, že fs uvedený ve fstabu (takže se jaksi očekává, protože je to zavedené chování, že se má namountovat během bootu) se nepodaří namountovat a systém čeká (s unitou mount) na to, až se objeví device? Mimochodem, ten device poprvé (během bootu) selhal, protože se prostě mdadm odmítlo sestavit. Takže mu ta device unita selhala, potom se tam někdy (zásahem admina) objevila, takže se rozhodl pokračovat dál v unitě mount (která tam čekala dlouhé minuty od bootu). Tohle chování přinese mnoho krásných zážitků do nudného světa správy serverů.
A rada (kterou, jak se stalo již tradicí, opět nikdo z party sd-boys neuvedl), je upravit fstab a spustit systemctl daemon-reload (protože ten generator se spustí při early boot, takže na jakoukoliv úpravu fstabu během provozu OS kašle - tohle je koncepčně v pořádku?). To opravdu budeme při změně konfigurace bootu spouštět nějaký příkaz? Tohle má být správa OS roku 2016?
Není lepší, aby se o závislosti staral správce služeb, tak, jako to dělá u jiných služeb?
A ten správce služeb si ty závislosti na device a networku vycucá odkud? Bude to muset mít někde napsané úplně stejně, jako je to teď napsané ve fstabu. Takže jeden workaround, který se vám nelíbí, přejde na jiný workaround, který se vám líbí.
Připadá mi normální, že souborový systém, který má podle fstabu být přimountován, je přimountován v okamžiku, kdy je to možné. Naopak mi připadá nenormální, že souborový systém uvedený ve fstabu je nebo není přimountován podle toho, zda v určitém okamžiku při startu systému zrovna bylo nebo nebylo možné jej přimountovat.
To, že správce určí nějaká pravidla, v jakém stavu mají být které služby v závislosti na stavu systému, a správce služeb pak podle toho stav služeb udržuje, je v pořádku. Chybné (a přinášející mnoho krásných zážitků do nudného světa správy serverů) je naopak chování initů založených na SysVinit, které pouze nastartují systém do nějakého stavu, a dál už se o služby nestarají, nereagují na změny. Pak dochází k překvapením, protože systém po bootu je v unikátním stavu, ve kterém nikdy předtím nebyl. Admin se holt bude muset naučit, že změny nedělá dvakrát, jednou v běžícím systému a podruhé pro příští start, ale nastavuje to pouze jednou, a systemd se průběžně stará o to, aby služby byly v tom stavu, v jakém být podle administrátora mají.
generator se spustí při early boot, takže na jakoukoliv úpravu fstabu během provozu OS kašle - tohle je koncepčně v pořádku?
Není. Poslal jste patch?
To opravdu budeme při změně konfigurace bootu spouštět nějaký příkaz?
Pořád lepší spouštět nějaký příkaz a dostat systém do přesně definovaného stavu, než stav před systemd, kdy běžící systém změníte sadou nějakých příkazů, pak změníte konfiguraci bootu, a teprve při příštím bootu zjistíte, jestli jste ty změny udělal správně.
A ten správce služeb si ty závislosti na device a networku vycucá odkud? Bude to muset mít někde napsané úplně stejně, jako je to teď napsané ve fstabu. Takže jeden workaround, který se vám nelíbí, přejde na jiný workaround, který se vám líbí.
Já nepovažuju za problém to, že ty závislosti musí být někde uvedené. Problém je to, že ty závislosti řeší pokaždé někdo jiný a jiným způsobem.
Připadá mi normální, že souborový systém, který má podle fstabu být přimountován, je přimountován v okamžiku, kdy je to možné.
Ano, s tím se hrozně dobře pracuje. Například si vzpomínám na problém s NM, kde se okamžitě po změně konfigurace iface (managed, nebo co tam je, na no) a uložení souboru (nebylo potřeba ani reload) server odpojil od sítě, protože NM danou síťovku uvedl do stavu down (protože usoudil, že když se o ní nemá starat on, tak asi nikdo a není tak potřeba).
Takže IPMI a nastavit to znovu a lépe bez NM ...
Tohle všechno ukazuje na to, že autoři těchto nových řešení neviděli server ani na obrázku. Na tom se to totiž nejlépe pozná. Na papíře vypadá skvěle kde co. Zejména ti, co nemají žádné zkušenosti, skáčou radostí do stropu. Jenže potom se to nasadí v praxi, přijdou reálné situace, reálné chyby (jak hw, sw, tak i ty lidské) a teprve tam se ukáže, který systém je lepší.
Jestli se vám líbí způsob vývoje systemd, kdy Lennart boys nastaví nějaký limit (asi hádáním z kávové sedliny), v praxi se ukáže, že je to úplně mimo (což, kdyby jim alespoň někdo vyprávěl, co to ten server je, by věděli sami), takže to v další verzi zase změní na o něco vyšší vyvěštěné číslo, nebo to, že udělají změnu v zabíjení procesů při odhlášení a distribuce to potom mění (debian systemd 230-2) během kompilace a musí měnit conf default a man (což dodnes není hotové), tak jo. Užijte si ho.
Ano, pracuje se s tím dobře. Říkáte, v jakém má být systém stavu, ne jak do toho stavu dospět. Takže odpadají všechny ty problémy způsobené tím, že jste se do zdánlivě stejného stavu dostal různými cestami. To je důležité zejména pro servery – pracovní stanice se vypínají každou chvíli, to u serverů neplatí, takže tam je o to důležitější, aby server po restartu naběhl do stejného stavu, v jakém byl před restartem.
Akorát holt musíte změnit způsob práce a uvědomit si, že už neděláte ručně změny a vedle toho nekonfigurujete konfiguraci po bootu, ale pouze nakonfigurujete požadovaný stav systému, a init se postará o provedení změn.
Chápu, že po zkušenostech s předchozími inity je překvapivé, že správce služeb službu nastartuje, když se o ni má starat a služba má běžet, a zase ji vypne, když se o ni starat nemá, ale to je přesně to, co správce služeb dělat má. Když se starý správce služeb nastartuje, spustí služby, pak se správce ukončí a nechá po sobě v systému nepořádek v podobě běžících služeb, funguje špatně.
Takže odpadají všechny ty problémy způsobené tím, že jste se do zdánlivě stejného stavu dostal různými cestami.
Jasně, statická konfigurace sítě přinesla tuny problémů...
Místo toho se zavede managed networking, který je závislý na nějaké službě, která monitoruje stav souborů na disku (teď mě napadlo, co by se stalo, kdyby ten fs nebyl dostupný - vypnul by NM taky síť, aby se na ten server už pro jistotu nedalo přihlásit?).
Ale jo, je fajn svěřit síť službě, která přestane fungovat po přidání páté statické routy. To je moc fajn. ;-)
Nj, tupej jirsak ... jirsaku, tys vzivote nevidel nic nez switch za 3 kila vid? KAZDEJ aspon trochu svepravnej prvek ma BEZICI konfiguraci a ULOZENOU konfiguraci, coz sou dve naprosto NESOUVISEJICI veci. A perla svini ... je to tak ty tupce proto, ze kdyz se zmeni konfigurace a nefunguje to, staci to v nejhorsim vypnout a zapnout. Kdyz by se to samo i ulozilo, tak ses v pici, protoze se k tomu uz nikdy nedostanes.
Tvrdit o SysV initu, ve kterem se sluzby spousti serializovane, ze se do vysledneho stavu dostane ruznymi cestami mi prijde ponekud divne. Toto chovani bych spise ocekaval u initu jako je systemd, ve kterem se sluzby spousti paralelne, popr. jako akce na nejakou udalost. Toto nedeterministicke schovani na desktopu vicemene nevadi, ale na serveru mam rad, kdyz v pripade problemu vim, kde system skoncil, ktere sluzby nenajely a ze se logy take plni vicemene v ocekavanem poradi. Take si myslim, ze nezalezi na typu initu, jestlize sluzba behem startu systemu nenajede, kdyz je chyba v jeji konfiguraci. Tedy pozadovany stav muze byt jaky chcete, ale kdyz udelate chybu v konfiguraci, stejne ho nedosahnete.
Pokus o neco jako targety, zavislosti atd. ze systemd byl jiz v LSB, viz nasledujici hlavicka z init skriptu pro knotd (jestli to nekdy fungovalo, funguje [CentOS 5.x, 6.x], bohuzel nevim):
### BEGIN INIT INFO
# Provides: knot knotd
# Required-Start: $network $local_fs
# Required-Stop: $network $local_fs
# Should-Start:
# Should-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: Knot DNS server daemon
# Description:
### END INIT INFO
Bohuzel v systemd chybi veci, na ktere byli admini pred tim zvykli, napr. jako vizualni potvrzeni akce - zda se povedla nebo ne. Systemd neco vypise pouze v pripade chyby, ale aspon ja jsem zvykly, ze kdyz startuji/stopuji/restartuji sluzbu, tak dostanu info OK nebo FAIL a nemusim se pro jistotu dotazovat na navratovy kod popr. status sluzby. V RedHati bugzille na toto exituje FR z roku 2013, ale zatim je to pry tezke implementovat.
Systemd spoustu veci pred adminem skryva, zamotava, zbytecne zobrazuje navic a nebo nezobrazuje vubec, dela uplne jinak a to je tezke; zde si myslim, ze mel byt vetsi duraz na kompabilitu ve stylu prace s jinymi inity. Na druhou stranu prinasi spoustu zajimavych myslenek, nastroju a reseni.
Například si vzpomínám na problém s NM, kde se okamžitě po změně konfigurace iface (managed, nebo co tam je, na no) a uložení souboru (nebylo potřeba ani reload) server odpojil od sítě, protože NM danou síťovku uvedl do stavu down (protože usoudil, že když se o ní nemá starat on, tak asi nikdo a není tak potřeba).
Napřed si stěžujete, že systemd se neaktualizuje automaticky, když změníte fstab, teď si stěžujete, že když se NM aktualizoval automaticky, když jste změnil nastavení. Tak si napřed ujasněte, co vlastně chcete.
Tohle všechno ukazuje na to, že autoři těchto nových řešení neviděli server ani na obrázku. Na tom se to totiž nejlépe pozná. Na papíře vypadá skvěle kde co. Zejména ti, co nemají žádné zkušenosti, skáčou radostí do stropu. Jenže potom se to nasadí v praxi, přijdou reálné situace, reálné chyby (jak hw, sw, tak i ty lidské) a teprve tam se ukáže, který systém je lepší.
Ale jistě, RHEL se totiž vůbec nevyvíjí pro servery…
Jestli se vám líbí způsob vývoje systemd, kdy Lennart boys nastaví nějaký limit (asi hádáním z kávové sedliny), v praxi se ukáže, že je to úplně mimo (což, kdyby jim alespoň někdo vyprávěl, co to ten server je, by věděli sami), takže to v další verzi zase změní na o něco vyšší vyvěštěné číslo
Kdy tohle systemd udělalo?
udělají změnu v zabíjení procesů při odhlášení a distribuce to potom mění (debian systemd 230-2) během kompilace a musí měnit conf default a man (což dodnes není hotové)
Poettering změnil výchozí nastavení, aby se při testech našly všechny vadné programy, které se neregistrují do PAM a spoléhají na to, že PAM sessions se při ukončení neuklízí. A co jako? Debian mění výchozí nastavení spousty věcí, včetně jádra či screenu. Mimochodem jednu z věcí, kterou Debian u screenu opravuje (už čtyři roky!), je, že novější screen není schopen se připojit na starší sezení. Předpokládám, že Jarda už hledá distro, kde screen není.
Napřed si stěžujete, že systemd se neaktualizuje automaticky, když změníte fstab
Možná si to přečtěte ještě jednou. Kdosi doporučoval, že by se měl editovat fstab, aby se zabránilo popsanému problému, tak jsem mu z manu vypsal řádek, že editovat fstab nestačí, ale je nutné reloadnout systemd. Rozhodně si nestěžuju, že systemd se nereloaduje automaticky, stěžuji si na to, že systemd cosi z fstabu vyrábí a navíc to pro jistotu ani neudržuje synchronní se svým stavem.
Kdy tohle systemd udělalo?
https://github.com/systemd/systemd/issues/2388
LP: I will bump the per-user limit to 16k now (from 4k), let's see how things work out with that.
Poettering změnil výchozí nastavení, aby se při testech našly všechny vadné programy, které se neregistrují do PAM a spoléhají na to, že PAM sessions se při ukončení neuklízí. A co jako?
Vadné? Proč vadné? Co přesně je vadného na tom, že proces udělá svůj fork a odpojí se od control terminálu?
Vadné? Proč vadné? Co přesně je vadného na tom, že proces udělá svůj fork a odpojí se od control terminálu?
Vadné je na tom to, že pak rodič nemůže ten proces řídit. To, že proces udělá svůj fork a odpojí se od control terminálu, aby byl z dosahu rodiče, akorát svědčí o „kvalitě“ předchozích init systémů.
Samozřejmě můžete mít v systému kupu volně ložených procesů, které možná běží a možná ne, možná zabírají nějaké systémové prostředky a možná ne, a nikoho to nezajímá.
Ale asi nemá smysl to dál řešit. Já preferuju automaticky spravované služby, protože je to deterministické, přenositelné, škáluje to. Vy preferujete ručně spravované služby, kdy si správce vše udělá ručně a žádný systém mu do toho nekecá. Já si myslím, že všechno směřuje k té automatizaci, protože je to ve výsledku spolehlivější a levnější, ale pro mne za mne, dělejte si to, jak chcete. Akorát pak systemd asi není zrovna vhodný nástroj, možná by to lépe řešil jediný skript, který spustíte při startu. Pokud už z nějakého důvodu musíte použít systemd, doporučuju používat simple nebo oneshot služby, které fungují přesně tak, že systemd něco spustí a dál už se o to nestará.
[i]Samozřejmě můžete mít v systému kupu volně ložených procesů, které možná běží a možná ne, možná zabírají nějaké systémové prostředky a možná ne, a nikoho to nezajímá.
Ale asi nemá smysl to dál řešit. Já preferuju automaticky spravované služby, protože je to deterministické, přenositelné, škáluje to.[/i]
No to bych se měl ptát já, ne? Před systemd se prostě služba spustila a běžela, když jsem to initu řekl. Pokud padala, bylo něco špatně a bylo třeba to řešit. Za normálních okolností nepadala a pokud byla dobře napsaná a nastavená, poradila si i s takovou věcí, jako odpojená síť, nefunkční disky nebo pole a podobně. Pokud tak nefungovala, tak se opravila, nebo nahradila jinou, která tak fungovala, případně pokud selhalo něco kritického, tak se to muselo opravit tak jako tak. Řešit něco automatickým restartem bylo vždy něco výjimečného, nestandardního, zavrženíhodného a dříve nebo později na to většina správců dojela. Ale časy se mění, dnes není problém ani systemd hádající se s OOMK, protože se prostě něco pokazilo :D
"Řešit něco automatickým restartem bylo vždy něco výjimečného, nestandardního, zavrženíhodného a dříve nebo později na to většina správců dojela."
Nejsem admin, ale opravdu nechapu, co nekterym administratorum na tomhle pristupu tak strasne vadi.
Pointa je prece prave reseni nestandardnich situaci, ktere mohou byt zpusobene treba velice vzacnou chybou v programu nebo konfiguraci (nebo treba HW chybou). V takovem pripade je, z hlediska dostupnosti, zadouci, aby sluzba co nejdriv znovu nabehla, a nemuselo se cekat nekolik desitek minut nebo hodin nez ji administrator zrestartuje. Proc k tomu doslo se muze resit pozdeji.
Na domacim serveru je to asi jedno, tam to muze pockat. Ale na velkych systemech co maji bezet spolehlive je automaticky restart (a vubec automaticka sprava sluzeb) nutnost.
Nejsem admin, ale opravdu nechapu, co nekterym administratorum na tomhle pristupu tak strasne vadi.
Jirsákovi se to zase bude strašně líbit, ale zdravé systémy prostě nepadají. Jako admin spravuju stovky serverů s tisícovkami služeb a služby, které se nastartují při bootu běží kontinuálně až do dalšího nařízeného rebootu (nebo třeba poweroff, máme hw servery, které se jednou zapnou, běží 6 let a potom se na konci své životnosti prostě vypnou - běží těch 6 let kontinuálně bez restartu).
Dá se to říct i naopak, služba, která se spoléhá na automatický restart, nemá na serveru co dělat.
Uptime služeb v jednotkách let není vůbec nic výjimečného.*
V takovem pripade je, z hlediska dostupnosti, zadouci, aby sluzba co nejdriv znovu nabehla, a nemuselo se cekat nekolik desitek minut nebo hodin nez ji administrator zrestartuje. Proc k tomu doslo se muze resit pozdeji.
Pokud je nějaká služba tak extrémně důležitá, tak stejně musí mít nepřetržitý dohled. Tedy admin je tam přítomný neustále.
Vysoká dostupnost se řeší úplně jinak, než neustálým restartováním bůh ví proč padající služby. Třeba tak, že danou službu převezme jiný server a ten vadný se odstaví.
*) Samozřejmě, můžeme se bavit o tom, jestli je to z hlediska bezpečnosti a updatů vhodné (rovnou říkám, že není a své servery si updatuji a rebootuji tak často, jak je potřeba), ale je to popis stavu.
Já s tím souhlasím, že zdravé systémy prostě nepadají. Akorát správce služeb nemá jak předem poznat, zda je daná služba zdravá. Navíc se tu pořád píše o tom, jak správce služeb nemá klást žádné nároky na spouštěnou službu – požadavek, že ta služba musí být absolutně zdravá, je extrémně silný a nesplnitelný.
Mimochodem, jeden ze základních způsobů, jak zajistit „zdravost“ nějakého komplexního systému, je počítat s tím, že jednotlivé komponenty toho systému mohou být nezdravé. Jakmile počítáte s tím, že vždy všechno perfektně funguje, sebemenší chybička vám celý systém složí.
Dá se to říct i naopak, služba, která se spoléhá na automatický restart, nemá na serveru co dělat.
Služba nemusí na automatický restart spoléhat. Automatický restart je způsob, jakým se správce služeb může vyrovnat s chybovým stavem, o kterém je dopředu známo, že může nastat.
U aut také můžete říci, že zdravá auta a zdraví řidiči prostě nebourají. A můžete to dokládat statistikou, kolik kilometrů už jste najezdil bez nehody. Přesto máte v autě bezpečnostní pásy, airbagy a deformační zóny – protože u auta je vám jasné, že i když výrobce chce udělat bezchybné auto a vy chcete bezchybně řídit, ještě to neznamená, že k havárii nedojde.
Vysoká dostupnost se řeší úplně jinak, než neustálým restartováním bůh ví proč padající služby. Třeba tak, že danou službu převezme jiný server a ten vadný se odstaví.
Ano, vysoká dostupnost se neřeší konstatováním „zdravé systémy prostě nepadají“, vysoká dostupnost se řeší tak, že se s možným pádem služby předem počítá a vytvoří se automatizovaný postup, který v případě pádu služby nějak zajistí její další dostupnost. Přičemž shodou okolností systemd zrovna tohle umožňuje udělat a počítá s tím.
U aut také můžete říci, že zdravá auta a zdraví řidiči prostě nebourají. A můžete to dokládat statistikou, kolik kilometrů už jste najezdil bez nehody. Přesto máte v autě bezpečnostní pásy, airbagy a deformační zóny – protože u auta je vám jasné, že i když výrobce chce udělat bezchybné auto a vy chcete bezchybně řídit, ještě to neznamená, že k havárii nedojde.
Ano, u auta jsou bezpečnostní prvky pro minimalizaci následků havárie. Určitě tam nejsou proto, aby havarovaný vůz okamžitě řidič nastartoval a jel dál. Havarované auto posuzuje odborník, a řidiče, zejména viníka nehody, posuzují příslušné orgány, jestli a kdy mu dají právo řídit.
Stejně tak, pokud zhavaruje služba, je na odborníkovi, aby posoudil, proč k tomu došlo. Je dobré, to dostat do nějakého bezpečného stavu, například ji vypnout; odstavit od dat a zabránit tak jejich případnému poškození.
Pokud je daná služba kritická pro nějakou infrastrukturu, tak musí být zajištěna její redundance, například tím, že bude poskytována jinou implementací (viz třeba kořenové servery).
Automatizace je sice hezká věc, ale opakovaně se ukazuje, že je to extrémně drahé a extrémně náročné udělat dobře. Blbě udělaný automatický systém udělá víc škody jak užitku. (A nemám důvěru v automat od autorů, kteří ani nevědí, jakou veličinu nastavují a její hodnotu zkouší stylem pokus omyl.)
Ano, u auta jsou bezpečnostní prvky pro minimalizaci následků havárie.
Přesně tak. A pokud je ukončení procesu považováno za havárii, což často je, musí také správce služeb poskytovat nějaký způsob, jak na takovou havárii, tedy ukončení procesu, reagovat.
Stejně tak, pokud zhavaruje služba, je na odborníkovi, aby posoudil, proč k tomu došlo. Je dobré, to dostat do nějakého bezpečného stavu, například ji vypnout; odstavit od dat a zabránit tak jejich případnému poškození.
Což ovšem nijak nesouvisí s procesem té služby, protože služba může havarovat aniž by se proces ukončil, stejně jako může být služba v havarovaném stavu a neběžet, aniž by před tím došlo k ukončení procesu (např. pokud mezi havárií služby a aktuálním okamžikem došlo k restartu počítače). Zkrátka to, v jakém je služba stavu, musí umět posoudit ona sama. Ostatně, myslím, že s tím sám máte jistou zkušenost – přestože nedošlo k pádu žádného procesu, měl jste havarovanou službu (rozpadlý RAID), a ta služba nebyla nakonfigurovaná, aby na havárii reagovala správně.
Automatizace je sice hezká věc, ale opakovaně se ukazuje, že je to extrémně drahé a extrémně náročné udělat dobře.
To sice ano, ale ještě dražší a náchylnější k chybám je dělat to ručně. Google nebo Amazon neautomatizují své procesy proto, že by to bylo dražší a poruchovější. Ostatně celý princip cloudu byl umožněn právě tím, že se správa služeb automatizovala.
A pokud je ukončení procesu považováno za havárii, což často je, musí také správce služeb poskytovat nějaký způsob, jak na takovou havárii, tedy ukončení procesu, reagovat.
Opět připomínám, bavíme se o restart on failure. Asi každý admin zná nějaký cluster ware, který při chybě služby umí reagovat tak, že to pustí na vedlejším nodu. Což je taky reakce. O tom ale diskuse nebyla.
protože služba může havarovat aniž by se proces ukončil, stejně jako může být služba v havarovaném stavu a neběžet
No samozřejmě, to se tady ale několikrát J snažil vysvětlit, že stav služby jen těžko může posuzovat správce (typu systemd), protože k tomu nemá žádné prostředky. Systemd tak maximálně ví, jestli běží nebo neběží nějaký proces, ale nemá páru o tom "jak dobře to běží". Takže v případě, kdy se služba zasekne v nekonečné smyčce, proces běží samozřejmě dál a systemd je happy a služba nefunguje.
Google nebo Amazon neautomatizují své procesy proto, že by to bylo dražší a poruchovější.
Přesně, a vůbec nikdy se nestalo, že vypadlo celé jedno pobřeží. ;-)
Tohle ukazuje na módy chyb. Zatímco pokud se admin uklepne u ruční práce, tak ohrozí maximálně tak jeden server, tak u automatizace se rovnou ohrožuje celá serverovna (aneb známé případy, kdy "devops" zhodil stovky služeb současně).
Jsou také moc hezké případy rozpadu energetické sítě, kdy automatické prvky zareagovaly tak, že příslušné přetížené větve vypnuly. Hezky kaskádně to popadalo. Kdyby tam byl člověk znalý, tak třeba uzná, že 150% přetížení ty prvky i pár hodin snesou (protože třeba ví, kdy bude opravená jiná větev - třeba za pár desítek minut) a je to lepší stav, než když to přejde do ostrovního režimu, kam to krásně poslala ta automatika a potom se to ručně skládalo dva dny.
"Nejsem admin, " ...
No prave. Uvedom si, ze kdyz neco zbuchne, tak to ma nejakou pricinu. A kdyz to znova spustis, tak to muze klidne znicit data, takze to nebude nedostupny hodinu nebo dve nez to admini projdou, ale uz treba taky nikdy, protoze data budou vriti. Co hur, ono to ty data muze poskozovat soustavne a dlouhodobe, aniz se na to hned prijde. Proste proto ze to prece "nejak" bezi ...
"Přičemž shodou okolností systemd zrovna tohle umožňuje udělat a počítá s tím."
Ne jirsaku tohle systemd neumi a neumoznuje protoze vubec nevi, jestli ta sluzba bezi nebo nebezi. Tohle umoznujou resit specializovany nastroje pro zcela konkretni sluzby, ktery s tim servisem komunikuji a tudiz maji prehled, zda odpovida, pripadne jak rychle atd atd. A vis co tyhle tooly udelaj, kdyz neco presahne deklarovany meze? Kupodivu sluzbu vypnou, a nareportujou adminovi, ze je neco spatne. Protoze restart to rozhodne nevyresi, a jedine co muze, je to jeste zhorsit.
Když potřebuji vysokou dostupnost, tak je to jednoduché. Po pádu služby ji přebere jiný node a ten, na kterém to spadlo, tu službu nikdy nemůže vzít zpátky, dokud to admin neprozkoumá a neodblokuje. Je to zajímavé, ale z opravdu kritických služeb na serverech, o které se starám, jsem nikdy neviděl žádnou, která by spadla jen tak bezdůvodně.
...kdyz se zadari :-)
(process:32253): GLib-CRITICAL **: g_hash_table_foreach: assertion `hash_table != NULL' failed
...
Jul 15 00:24:34 node1 pengine: [2751]: ERROR: unpack_rsc_op: Preventing mgmt from re-starting anywhere in the cluster : operation monitor failed 'not configured' (rc=6)
Jul 15 00:24:34 cls1 pengine: [2751]: WARN: unpack_rsc_op: Processing failed op mgmt_DRBD:1_last_failure_0 on node1: not configured (6)
Jul 15 00:24:34 node1 pengine: [2751]: notice: LogActions: Demote mgmt_DRBD:0#011(Master -> Stopped node2)
Jul 15 00:24:34 node1 pengine: [2751]: notice: LogActions: Stop mgmt_DRBD:1#011(node1)
Jul 15 00:24:34 node1 pengine: [2751]: notice: LogActions: Stop xen-mgmt#011(node2)
...bylo to "jen" DHCP...rano byli zamestnanci samozrejme nemile prekvapeni, ze jim nic nejde.
Aby to systemd mohlo udržovat synchronní, muselo by se z podstaty věci automaticky reloadovat.
Vadné je na tom to, že ten proces poběží mimo PAM session, což může mít různé hodně divné následky. Třeba se zamkne ecryptfs nebo se odpojí NFS či WebDAV automount. Nebo proces přestane mít právo přistupovat k určitým zařízením, protože i udev nastavuje práva pomocí PAM session. Takový proces by měl spustit novou session, která tyhle věci podrží.
Poettering změnil výchozí nastavení, aby se při testech našly všechny vadné programy, které se neregistrují do PAM a spoléhají na to, že PAM sessions se při ukončení neuklízí.
Joj, to je ale uzasna metoda. To je jako shodit sarin na vesnici a pak to tam jit za 14 dni ocuchat a podle smradu zjistit, jestli byla obyvana. Ono by samozrejme nebylo mozne napsat neco, jako popularity contest v debianu, ktery by byl pri upgradu dobrovolne aktivovany adminem a posilal by informace o chovani aplikaci. Ne, ono je lepsi vsechno rozbit a dat lidem nuz na krk. Bud prejdou na viru systemd nebo budou o hlavu kratsi. Mezitim at si useri trhnou nohou.
"Admin se holt bude muset naučit, že změny nedělá dvakrát, jednou v běžícím systému a podruhé pro příští start, ale nastavuje to pouze jednou, a systemd se průběžně stará o to, aby služby byly v tom stavu, v jakém být podle administrátora mají."
Rekl bych, ze toto plati jak pro SysV init, tak i pro systemd. V obou initech muzu nastavit spousteni sluzby behem startu, ale zaroven ji nemusim spustit a nebo opacne, muzu sluzbu spustit, ale uz ji nemusim nastavit pro start behem bootu OS. Ano systemd na to ma zkratku pomoci parametru --now, ktery obe akce (enable+start a disable+stop) provede najednou, ale toto nekazdy bude znat. Tedy pokud si chci byt jisty, ze mi system najede, tak jak ja chci, tak kontrolni restart zustava nutnosti.
Dle meho nazoru systemd prinasi jen dalsi komplikace s mechanizmem socketu, pekna myslenka, ale pro testovani, ze vse funguje tak jak ma, je to dalsi krok navic. Se SysV initem treba pro rychlou kontrolu stacilo vylistovat procesy a mrknout, co za procesy na serveru bezi a ktere ne. V pripade aktivace pres sockety, musim nejdrive pristopit na dany socket, aby se sluzba "mozna" spustila (bohuzel ne vsechny aplikace umi kontrolu konfigurace mimo start sluzby).
@Jirsák
Pan Jirsáku, to, že se někomu nelíbí systemd neznamená že je jenom obyčejný hater a nula co ničemu nerozumí. Taková argumentace akorát ukazuje ... aneb kdo není s námi . . .
Místo aby to byl ten nový task manager, tak už se to sere i do fs. Místo aby služby sjednotil, tak je nahrazuje a to ještě tak, že rozbíjí dlouho zavedení a prověřené věci. Místo aby to byl mezičlánek, tak rozbíjí kompatibilitu se vším co potká. To je prostě deblita.
Ještě že se nám tak nechovají třeba editory: VIm, Nano, vi, Emacs, . . . . že by někdo některý z nich "opravil" třeba na systemd-vi, samozřejmě by se jinak, "lépe", "moderním systémem", ukládaly soubory na disk, ale jenom se systemd-fs a s ostatními editory si vytřete . . . nebo si napište svůj. Debian na něj přejde o jeden hlas a je většinově rozhodnuto (beru to), ale neprezentoval bych to jako rozhodně jasné rozhodnutí: "No, když na to přešli v distribucích . . . " a tak už si člověk nevybere, protože jak na to přejdou velké distribuce, tak to balíčkáři musí začít podporovat . . . (systemd-vi, systemd-fs) a ostatní se nevyplatí . . . Ještě aby byl systemd-update a podstrkovalo to aktualizaci na další verzi, třeba 10 . . .
Pan Jirsáku, to, že se někomu nelíbí systemd neznamená že je jenom obyčejný hater a nula co ničemu nerozumí. Taková argumentace akorát ukazuje
Já jsem takovou argumentaci nepoužil. Já jsem napsal, že většina odpůrců systemd jsou jen systemd-haters, a většina nejsou všichni.
tak už se to sere i do fs
Není pravda.
Místo aby služby sjednotil, tak je nahrazuje
Co to znamená, že by měl služby sjednotit? Systemd nenahrazuje služby jen tak z plezíru, ale vytváří takové služby, které jsou pro infrastrukturu systemd potřeba. Systemd řídí stav služeb na základě událostí, ke kterým v systému dochází. Může plynutí čau generovat nějaké události v systému? Nepochybně ano. Takže dává smysl umožnit měnit stav služeb i na základě plynutí času - buď v intervalu od nějaké jiné události, nebo v pravidelném intervalu. A že tnehle mechanismus vlastně může nahradit cron? No ano, může - a vadí to něčemu?
rozbíjí kompatibilitu se vším co potká
Když je někde nepořádek, nejde to vyčistit tak, že zachováte zpětnou kompatibilitu a budete i po úklidu pořád vypadat, že je tam nepořádek.
"Já jsem takovou argumentaci nepoužil. Já jsem napsal, že většina odpůrců systemd jsou jen systemd-haters, a většina nejsou všichni."
Víte, to mi připomělo Brexit a CT24. Ti zlí, pro vystoupení, jsou průměrní jedinci, kteří nemají obzory, necestují a nebo jsou staří a tak rozhodli i za mladé, ti samozřejmě chtěli jinak. Na druhou stranu ti co volili "IN", tak jsou většinou vzdělaní lidé, kteří cestují a mají rozhled nad životem. Ano. úplně stejně debilně zní to Vaše "že většina odpůrců systemd jsou jen systemd-haters, a většina nejsou všichni."
"Co to znamená, že by měl služby sjednotit? Systemd nenahrazuje služby jen tak z plez........."
Tak proč nenapíše svůj nový OS, udělat si takový system10 i se system32, když je to tak potřeba všechno přepsat? Protože na systém v takovém stavu jako je systemd by se mu každý vysr..
Jako pardon, ale kdyby to tak nedojebávalo ostatní věci, tak bych to fakt uvítal. Jenže on ten svatý grál není v tom všechno přepsat, ale napsat takovou komponentu, aby dokázala spolupracovat s ostatníma a to co dělají nechat na nich.
"Když je někde nepořádek, nejde to vyčistit tak, že zachováte zpětnou kompatibilitu a budete i po úklidu pořád vypadat, že je tam nepořádek."
No to si pište že jde. Už jsem Vám to psal minule. Je to stejné, jako když měníte třeba databázi na produkci za pochodu - prostě se akorát nevys....na ostatní závislosti . . . Prostě se implementuje nová a zachová stará. Nic na tom není. Jen trocha myšlení a práce.
Tak proč nenapíše svůj nový OS, udělat si takový system10 i se system32, když je to tak potřeba všechno přepsat? Protože na systém v takovém stavu jako je systemd by se mu každý vysr..
Proč si neudržujete svůj OS bez systemd? Snad si správci distribucí mohou rozhodnout, že oni chtějí OS se systemd, ne?
úplně stejně debilně zní to Vaše "že většina odpůrců systemd jsou jen systemd-haters, a většina nejsou všichni."
Jenže já jsem nepsal, že většina odpůrců jsou jen systemd-haters proto, že nemají rádi systemd. Odkazoval jsem na komentáře v této diskusi. Pokud chcete konkrétní příklad - to, že si někdo vymyslí lež o tom, jak systemd znemožní fungování cronu, není příklad bryskního uvažování a nadprůměrného vzdělání. Je to naopak příklad toho, že dotyčný prostě nenávidí systemd, musí to nějak dát najevo a je mu úplně jedno, jestli to, co píše, je pravda, lež nebo nesmysl. A takových komentářů od odpůrců systemd je v této diskusi i v ostatních většina.
když je to tak potřeba všechno přepsat?
Není potřeba všechno přepsat. Tvrdil to snad někdo? Nasvědčuje tomu něco? Proč jste tedy něco takového napsal, když jste si musel být vědom toho, že to není pravda? To je důkaz vašeho vzdělání, scestovalosti a rozhledu nad životem, že píšete věci, o kterých musíte vědět, že nejsou pravda?
Jako pardon, ale kdyby to tak nedojebávalo ostatní věci, tak bych to fakt uvítal.
Já bych nejdřív uvítal aspoň jeden příklad té rozbité ostatní věci. Většina příkladů, které jsem zatím někde viděl popsaných, spočívala v tom, že měl někdo něco špatně nastavené, jenže spolu s polofunkčním initem to ve výsledku dělalo to, co si dotyčný představoval. A když teď dotyčný dostal do ruky funkční systemd, neví, co si má počít s tím svým špatným nastavením. Je to úplně stejné, jako když jiní v diskusích o IPv6 vysvětlují, jaký je to nesmysl, protože bez NATu nemůže žádná síť fungovat.
dokázala spolupracovat s ostatníma a to co dělají nechat na nich.
To systemd dělá. Jenže když úlohou nějaké komponenty je poslepovat k sobě několik různých hacků, není řešením napsat emulaci těch hacků, ale napsat ty komponenty tak, aby se bez těch hacků obešly.
No to si pište že jde. Už jsem Vám to psal minule. Je to stejné, jako když měníte třeba databázi na produkci za pochodu - prostě se akorát nevys....na ostatní závislosti . . . Prostě se implementuje nová a zachová stará. Nic na tom není. Jen trocha myšlení a práce.
Nejde. Za pochodu můžete dělat úpravy nebo něco vylepšovat. Nemůžete za pochodu odstranit hacky tak, aby tam pořád zůstaly. Když něco "uklidíte" tak, aby to vypadalo, že je tam pořád nepořádek, bude tam pořád nepořádek. Prostředí založené na SysVinitu je soustava hacků, ty hacky tvoří to podstatné. Když hacky odstraníte, zbydou vám akorát ty komponenty, ale ten původní základ je pryč a musíte jej nahradit něčím novým.
Ale to víte že to jde. I se to tak dělá. To je pak tím, že když si koupíte nové auto, tak pořád můžete tankovat i na staré pumpě, když si koupíte nový komp, tak do USB3 dáte i USB2, na kompech jsou pořád VGA i když už dnes frčí hdmi, kvůli šetrným spotřebičům nikdo nemění ve všech bitech v republice zásuvky . . . atd . . .
"když je to tak potřeba všechno přepsat? . . . Tvrdil to snad někdo? "
"Když je někde nepořádek, nejde to vyčistit tak, že zachováte zpětnou kompatibilitu a budete i po úklidu pořád vypadat, že je tam nepořádek." => přepsat
"Já bych nejdřív uvítal aspoň jeden příklad té rozbité ostatní věci. "
Třeba to co popisuje zde pan Heron, ať nechodíme daleko.
Mimochodem
"Admin se holt bude muset naučit, že změny nedělá dvakrát, jednou v běžícím systému a podruhé pro příští start, ale nastavuje to pouze jednou, a systemd se průběžně stará o to, aby služby byly v tom stavu, v jakém být podle administrátora mají."
Ono to spíš znamená, že si bude muset zvyknout, že když něco nastaví jak má jet, tak systemd si to ještě přehodnotí a spustí si co uzná za vhodné. No to ale pěkně děkuji. Dříve, to člověk restartoval a upravil tak, aby tam po restartu běželo co mělo. Dnes, cool, to nastaví a počká, co mu systemd schválí, ale při rebootu po 2 měsících to může být zase jinak, protože chování někdo změnil v patchi. A ne že si nastavím služby, otestuji restartem a za 5 let to bude to samé.
když si koupíte nové auto, tak pořád můžete tankovat i na staré pumpě
Zkuste si natankovat do nového auta Natural 91. Nebo olovnatý benzín.
když si koupíte nový komp, tak do USB3 dáte i USB2
Obzvlášť když ten nový počítač (či mobil) má USB-C, že?
na kompech jsou pořád VGA i když už dnes frčí hdmi
Dříve, to člověk restartoval a upravil tak, aby tam po restartu běželo co mělo.
Anebo to upravil, otestoval na běžícím stroji (který admin testuje změnu nastavení restartem serveru?) a po restartu to už nenaběhlo. Poměrně běžně. Protože konfigurace za běhu ≠ konfigurace po restartu.
"Zkuste si natankovat do nového auta Natural 91. Nebo olovnatý benzín"
Jo? A kde by sis ho ty chtrej tak natankoval? To už se na čerpačkách nevyskytuje, ale tak už na to nic nejezdí a nebo do 95 přidáte aditiva.
"Obzvlášť když ten nový počítač (či mobil) má USB-C, že?"
Tak mobil je jasný a pokud vím, tak standatní USB2 konektor nikdy neměl. Radši mi ukaž notebook nebo motherboard bez USB2/3 když si tak chytrý
"na kompech jsou pořád VGA i když už dnes frčí hdmi"
DVI-D + redukce a hdmi tam máš 3x. V případě nekompatibility o které jsem mluvil by nebyly redukce
"Anebo to upravil, otestoval na běžícím stroji (který admin testuje změnu nastavení restartem serveru?) a po restartu to už nenaběhlo. Poměrně běžně. Protože konfigurace za běhu ≠ konfigurace po restartu."
Restartem testuje ten admin, který si chce být jistý, že je tam po restartu co má být - třeba u IoT to zas takový problém není když nasazuješ embedded. Ale se systemd je to lepší? změníš konfiguraci a nevíš co bude porestartu protože nevíš, co s tím udělá a co se rozhodne odpalit nebo nespustit, Kde je výhoda?
Jo? A kde by sis ho ty chtrej tak natankoval? To už se na čerpačkách nevyskytuje, ale tak už na to nic nejezdí a nebo do 95 přidáte aditiva.
Dnes se již nevyskytuje. To neznamená, že to tak vždy bylo. Na začátku 90. let (což chápu, že si asi nepamatuješ) to rozhodně nebyla samozřejmost.
Tak mobil je jasný a pokud vím, tak standatní USB2 konektor nikdy neměl
Standardní konektor byl microUSB. Zkus si vyhledat Universal Charging Solution.
Radši mi ukaž notebook nebo motherboard bez USB2/3 když si tak chytrý
Není USB jako USB. Třeba tenhle má jen USB-C, což není kompatibilní s kabely s koncovkou USB-A.
DVI-D + redukce a hdmi tam máš 3x. V případě nekompatibility o které jsem mluvil by nebyly redukce
VGA je analogové a pro redukci je potřeba DVI-I nebo DVI-A. S pouze digitálním DVI-D, které mají tyhle karty, nefunguje.
Ale se systemd je to lepší? změníš konfiguraci a nevíš co bude porestartu protože nevíš, co s tím udělá a co se rozhodne odpalit nebo nespustit, Kde je výhoda?
Žádná výhoda by nebyla, pokud by tohle byla pravda. Ale není. Systemd má nadefinovaný nějaký stav, kterého má dosáhnout, a toho dosahuje hned i po desátém restartu.
Zkuste si natankovat do nového auta Natural 91. Nebo olovnatý benzín.
Tak ono je to naopak. Do starych aut se tankuje bezolovnaty benzin. Byl udelan tak, aby pasoval na starou technologii aut. Systemd jde na to tak, ze novou technoligii rve do stare tak, aby to vyvolalo co nejvice problemu na vsech stranach. Tak nejak, jako kdyby bezolovnaty benzin znicil na starem aute funkci steracu a pri pokusu o zamceni dveri pri jihozapadnim vetru by ty dvere upadly.
Tak ono zalezi na tom, o jak starem aute mluvime. Moje pochazi z doby pred bezolovnatymi benziny a zadne sracky se do nej pridavat nemusi, jede na normalni benzin 95 oktanu. Pokud mluvis o veteranech z prvni svetove valky, tak zalezi na kompresnim pomeru. Ty ale asi tezko mel nekdo na mysli, kdyz se zavadel bezolovnaty benzin.
Ale to víte že to jde. I se to tak dělá. To je pak tím, že když si koupíte nové auto, tak pořád můžete tankovat i na staré pumpě, když si koupíte nový komp, tak do USB3 dáte i USB2, na kompech jsou pořád VGA i když už dnes frčí hdmi, kvůli šetrným spotřebičům nikdo nemění ve všech bitech v republice zásuvky
Vy pořád nechápete, v čem je ten rozdíl. Vy popisujete příklad, když máte nějakou vlastnost, a tu samou vlastnost implementujete jiným způsobem. Ano, když máte auto na benzín, a pořídíte si jiné auto na benzín, můžete tankovat pořád benzín. Já píšu o systemd, které se snaží opravit některé špatné vlastnosti předchozích správců služeb. Takže máte nějakou vlastnost, která je špatná, a nahradíte ji jinou vlastností. Když se vám bude zdát, že benzín je příliš drahý a koupíte auto na plyn, nemůžete do něj dál tankovat benzín. Když si pořídíte auto na plyn, které bude zpětně kompatibilní a půjde do něj tankovat benzín, a vy do něj budete tankovat benzín, jaksi jste přišel o tu vlastnost, proč jste si auto na plyn kupoval, a dál jezdíte na drahý benzín. Nejde udělat auto, do kterého budete tankovat benzín, ale platit budete levný plyn.
Třeba to co popisuje zde pan Heron, ať nechodíme daleko.
To není příklad toho, že by něco systemd rozbilo. To je příklad chybné konfigurace.
Ono to spíš znamená, že si bude muset zvyknout, že když něco nastaví jak má jet, tak systemd si to ještě přehodnotí a spustí si co uzná za vhodné.
Neznamená, to je opět váš blud. Jak jste na takový nesmysl přišel? Máte nějaký příklad, kdy by systemd spouštěl něco jiného, než co má v konfiguraci?
při rebootu po 2 měsících to může být zase jinak, protože chování někdo změnil v patchi
Nemůže, protože když aktualizujete systemd, zrestartujete i systemd a to nové chování se vám projeví hned. Že se změnilo chování se dozvíte z release notes.
otestuji restartem
Otestuji restartem? To jsme ve Windows, nebo co? Normální správce služeb se chová tak, že udržuje služby ve stavu odpovídajícím stavu systému. Bez ohledu na to, jestli mezi tím restartujete počítač.
To vaše "otestuji restartem" nebo "rebootuju, aby se aktualizoval systemd" jsou právě příklady toho, kdy to děláte špatně (protože to dříve jinak nešlo), a teď to špatné chování požadujete i po novém systému. Přesně jako ti správci, kterým bez NATu nemůže fungovat IPv6 síť.
To není příklad toho, že by něco systemd rozbilo. To je příklad chybné konfigurace.
Ne, to je příklad toho, že systemd změnilo roky zavedenou věc. Ale předpokládám, že se dozvím - on už to tu dokonce i někdo napsal - že je to moje chyba, protože si mám přečíst man - pokud teda zrovna bude aktuální.
Hele, mě by vlastně vůbec nevadilo, kdyby systemd ohlásil, že od verze 400 se nebude fstab používat. Klidně bych si to do těch unit přepsal už teď, tak jak jsem to udělal u dalších komponent, a fstab bych smazal. (Jak jsem psal na blogu, ten formát se mi docela líbí.) Ale co mi vadí je, že se náhle změní desítky let zavedený koncept, systém se začne chovat zcela jinak a borci na fóru to označí za chybu konfigurace. Pokud je v tom fstabu něco špatně, tak na to má ten generátor upozornit. (Samozřejmě, že není. Není to chyba konfigurace, je to plíživá změna konceptu.)
Že se změnilo chování se dozvíte z release notes.
Jasně, teď si dáme minutu předstírání, že všichni čtou každý release notes a zejména u věcí, které jsou desítky let staré. (Když už to tady sklouzlo k autům, tak přece nikoho nemůže překvapit, že se plyn přidává pákou, která dodnes sloužila jako ruční brzda, protože je to přece napsáno v manuálu.)
Ze te bavi se stim debilem kterej neumi ulozit obrazek vubec dohadovat ...
Rozhodne te neprekvapi, ze brzda je vlevo, plyn uprostred a spojka vpravo ... je to prece v dokumentaci (ktera sice neexistuje, pripadne popisuje 10let starej stav, ale to prece neva), protoze nekdo prisel na to, ze je to tak daleko optimalnejsi z hlediska pohodli a reakcnich casu. A az prijedes na prvni servis, tak ti to (v ramci aktualizaci) prehodej ke spolujezdci ...
Ne, to je příklad toho, že systemd změnilo roky zavedenou věc.
Ano, za ta desetiletí, co se bastlilo se SysVinitem, je zavedená spousta nesmyslů. Když se těch nesmyslů chcete zbavit, musíte měnit zavedené věci. Jak už jsem několikrát psal, pro některé administrátory je nasazení IPv6 problém, protože mění roky zavedenou věc – NAT. Jenže když NAT škodí a s IPV6 není potřeba, je přece nesmysl ho do IPv6 sítě cpát jenom kvůli tomu, že je to roky zavedené.
Klidně bych si to do těch unit přepsal už teď, tak jak jsem to udělal u dalších komponent, a fstab bych smazal.
To by bylo řevu v diskusích. Jak systemd všechno rozbíjí, není zpětně kompatibilní, jak bez fstabu nemůže nic fungovat, jak systemd pohlcuje souborové systémy…
Ale co mi vadí je, že se náhle změní desítky let zavedený koncept, systém se začne chovat zcela jinak a borci na fóru to označí za chybu konfigurace.
Ten desítky let zavedený koncept byl, že tu máme jakýsi zárodek správce služeb, který služby při startu počítače nějak nastartuje, a pak už se o nic nestará. Koncept systemd je, že tu máme správce služeb, který se o služby stará trvale a udržuje je ve stavu, v jakém podle konfigurace a stavu systému mají být. To není žádná náhlá změna v průběhu vývoje systemd, to je koncept jasný už od okamžiku vzniku systemd (a některé inity ho používaly už před systemd, dokonce i SysVinit tohle uměl). K tomu nemusíte číst žádné manuály nebo release notes, to je princip, který funguje v systemd od začátku.
Takže stačí se tak k systému chovat, nepočítat s tím, že init je rozbitý a neumí na změny v systému reagovat, ale naučit se postupovat tak, že když nějakou službu chci dočasně vypnout, musím ji opravdu nastavit do vypnutého stavu.
Ten váš příklad s rozbitým RAIDem je opravdu příklad chybné konfigurace, která se akorát shodou náhod a chyb starého initu dříve neprojevila. Chyba byla především v tom, že se na rozbitý RAID pouští fsck se zápisem na disk. Že se to nespustilo nikdy dřív bylo dané chybným chováním starého initu, který neuměl detekovat připojené zařízení a přimountovat ho (přičemž to samé by mohl dělat třeba udev, a také to není chyba udevu). A zároveň to bylo věcí náhody – kdyby se starým initem něco způsobilo restart počítače s tím vadným polem, při startu by se ho init pokusil připojit a dopadlo by to úplně stejně.
Ano, desítky let zavedené postupy spoléhající na to, že init je rozbitý, opravdu se systemd nefungují, ale to je záměr. Záměrem nebylo napsat další rozbitý init, záměrem bylo napsat init, který bude (alespoň v rámci dnešních znalostí a možností) fungovat správně.
Ano, za ta desetiletí, co se bastlilo se SysVinitem, je zavedená spousta nesmyslů. Když se těch nesmyslů chcete zbavit, musíte měnit zavedené věci.
Mě se líbí, jak se tady vrší spousta invektiv. Nemáme se systemd bát; bastlilo; workardoundy; rovnáky na vohejbáky; nesmysly apod. :-D
Nejlepší způsob, jak se zbavit nesmyslů, je přijít se zcela novým řešením a na to prostě přejít. Ne postupně rozbíjet vše existující. U některých komponent to systemd evidentně umí a je jen na adminovi, zda je použije (já je používám).
Když už je zde analogie se sítí, tak správným řešením problému ifconfig (na linuxu) mělo být zavední ip(route2) (to se povedlo), a včasné dropnutí podpory ifconfig (to se nepovedlo).
Jenže když NAT škodí a s IPV6 není potřeba, je přece nesmysl ho do IPv6 sítě cpát jenom kvůli tomu, že je to roky zavedené.
Souhlasím. Ať systemd nechá fstab být a místo toho zavede filesystemd a nechť ohlásí ve verzi 400 dropnutí podpory fstabu. IPv6 také žádný způsobem neničí NAT na IPv4. Ty věci mohou paralelně fungovat vedle sebe. (U toho dualstacku je to jednodušší, u fstab by se muselo zajistit, aby si vzájemně nelezly do zelí.)
To by bylo řevu v diskusích. Jak systemd všechno rozbíjí, není zpětně kompatibilní, jak bez fstabu nemůže nic fungovat, jak systemd pohlcuje souborové systémy…
Takže se téhož dosáhne salámovou metodou a postupným rozbíjením různých dosud funkčních komponent.
Chyba byla především v tom, že se na rozbitý RAID pouští fsck se zápisem na disk.
Když si všimnete, tak zrovna toto nekritizuju. To, že fsck volaný z initu by default dělá "bezpečné" opravy, vím. Kritizuju stav, že když se nepodaří nastartovat nějakou device při early bootu, tak mount service si v klidu a pohodě čeká na to, až se tam to device jednou objeví. To, že device je failed asi znamená, že je něco špatně, takže by se měly všechny ostatní závislosti zrušit a ne se to tam pokoušet narvat, jakmile je zpět online.
Že se to nespustilo nikdy dřív bylo dané chybným chováním starého initu, který neuměl detekovat připojené zařízení a přimountovat ho (přičemž to samé by mohl dělat třeba udev, a také to není chyba udevu).
Mě se líbí, jak všude vnucujete tu svoji utkvělou představu o tom, jak by se měl, podle vás, systém chovat, a jakékoliv jiné chování označujete za chybu.
Nebojte se. To, že máte rád všechno managed tu asi pochopil každý.
A zároveň to bylo věcí náhody – kdyby se starým initem něco způsobilo restart počítače s tím vadným polem, při startu by se ho init pokusil připojit a dopadlo by to úplně stejně.
Ne, nedopadlo, protože to pole by se automaticky nesestavilo. Takže i kdyby se něco rebootovalo, tak by tam ten block device opět nebyl. Kdyby se to jen tak z plezíru natvrdo rebootovalo, tak by to byla známka většího poškození hw.
Mě se líbí, jak se tady vrší spousta invektiv. Nemáme se systemd bát; bastlilo; workardoundy; rovnáky na vohejbáky; nesmysly apod. :-D
To nejsou nesmysly, to je konstatování faktu. To, že se mount zabývá sítí, není rozumné chování. To, že se proces vzdá výstupu na standardní výstup a odforkuje se z dosahu rodičovského procesu, to nevypovídá o kvalitě init systému. To, že se systém chová jinak po startu počítače a jinak za běhu, není žádná super vlastnost.
Nejlepší způsob, jak se zbavit nesmyslů, je přijít se zcela novým řešením a na to prostě přejít.
A co jiného dělá systemd? Nové řešení samozřejmě rozbije ty věci, které mění. To není záměr, to je důsledek.
Když už je zde analogie se sítí, tak správným řešením problému ifconfig (na linuxu) mělo být zavední ip(route2) (to se povedlo), a včasné dropnutí podpory ifconfig (to se nepovedlo).
To je trochu problém. Systemd je na jednu stranu vytýkáno, že věci mění příliš rychle, že by všechno mělo být zpětně kompatibilní a že nereflektuje skutečné potřeby uživatelů a správců. A vy na druhou stranu systemd vytýkáte, že má udělat všechny změny najednou, že se mělo připravit někde v tajnosti bokem a pak všechno naráz předělat. Jak chcete vyhovět oběma stranám?
Kritizuju stav, že když se nepodaří nastartovat nějakou device při early bootu, tak mount service si v klidu a pohodě čeká na to, až se tam to device jednou objeví.
To je správné chování. Špatné chování je naopak to, když připojení závisí na tom, jestli se zařízení objeví v systému před nebo po nějakém náhodném okamžiku po bootu systému.
To, že device je failed asi znamená, že je něco špatně, takže by se měly všechny ostatní závislosti zrušit a ne se to tam pokoušet narvat, jakmile je zpět online.
To, že je device failed, znamená, že je něco špatně a že se nemá připojovat. Když není failed a má nastaveno, že se má připojovat, je správně, že se připojí. Když není failed a přesto se nemá připojovat, musí to administrátor systému nakonfigurovat. Špatně je to, když stav připojení závisí na tom, že zařízení někdy bylo failed a systém si to od té doby náhodou ještě pamatuje.
Mě se líbí, jak všude vnucujete tu svoji utkvělou představu o tom, jak by se měl, podle vás, systém chovat, a jakékoliv jiné chování označujete za chybu.
Jenže ona to chyba je. Pokud má systém fungovat podle vaší představy, tedy po bootu proběhne nějaká série operací, a po jejich dokončení už veškeré operace musí provést ručně administrátor, nepotřebujete vůbec žádné init skripty. Prostě si napište shell skript, který potřebné operace provede a který spustíte po bootu, a máte vystaráno.
Samozřejmě nikdo nemusí používat správce služeb. Ale když už používá správce služeb, měl by ten správce fungovat – správce služeb, který služby spravuje někdy a tak trochu, funguje špatně.
Kdyby se to jen tak z plezíru natvrdo rebootovalo, tak by to byla známka většího poškození hw.
Nebo třeba známka ztráty napájení.
To, že se mount zabývá sítí, není rozumné chování.
Mount se zabývá sítí pouze do té míry, že připojuje síťové fs. Pokud není síť dostupná, tak ohlásí chybu. Co je na tom špatně?
To, že se proces vzdá výstupu na standardní výstup a odforkuje se z dosahu rodičovského procesu, to nevypovídá o kvalitě init systému.
Opakuji podruhé, nemluvil jsem o initu. Vy jste v životě nepoužil nohup? V životě jste nespustil program -d na příkazové řádce? V životě jste nepoužil tmux? Co je konkrétně špatně na tom, když se proces odpojí od control terminálu?
A vy na druhou stranu systemd vytýkáte, že má udělat všechny změny najednou, že se mělo připravit někde v tajnosti bokem a pak všechno naráz předělat.
Nic takového jsem netvrdil. Můžete používat ntp, nebo si můžete nastavit timesyncd. Můžete používat resolved, nebo taky nemusíte. Můžete používat networkd nebo taky nemusíte. Můžete si nastavit timery, nebo taky nemusíte. Žádné toto řešení neničí stávající existující služby a je pouze na adminovi, které řešení si vybere. Takže to není žádné najednou a v tajnosti. Prostě nechť si systemd implementuje vše, co uzná za vhodné a nechť je na adminovi, kdy přejde (a klidně to může při bootu hlásit, že ve verzi 400 už nebude podporováno původní řešení). Já jsem ve všech výše zmíněných případech přešel dobrovolně na systemd, ale stále mohu používat jiné implementace daných služeb (například stále mám v systému crond, ale jako user už používám .timer).
Nebo třeba známka ztráty napájení.
Nebo na to může spadnout meteorit.
Tak já to shrnu, ju? Správce služeb má služby spravovat, ne nahrazovat, když se mu náhodou něco nehodí, ne je nutit, aby byly na konkrétním správci závislé.
Má je prostě spustit ve správném pořadí, může je i hlídat a dle nastavení provádět různé akce při jejich selhání. Potud v pořádku, nemám problém a je mi úplně jedno, jestli to udělá jeden skript, nebo sada skriptů, jestli se to jmenuje SysV, nebo OpenRC, nebo třeba systemd. Ale tím končí úloha initu/správce služeb.
V okamžiku, kdy toho začne dělat víc, tak to má být samostatná služba, kterou nemusím používat, která mě do ničeho nenutí a kterou kdykoliv nahradím jinou službou, která mi bude víc vyhovovat.
To, že init uvede něco do zcela neurčitého stavu, jak tu zaznělo, to se dříve stávalo, pokud byl nějaký problém a tak jako tak bylo třeba jej vyřešit. Toto chování kupodivu poslední dobou způsobuje spíše systemd, než cokoliv jiného.
A ta neskutečná arogance, požadovat po někom, aby upravil svůj SW tak prasácky, aby se systemd fungoval, to je ten největší narovnák na vohejbák na na natahováku na zkracováku.
A to, že tenhle celej nesmysl navíc komplikuje portování aplikací mezi různými OS, to už je jen taková třešnička na dortu.
Jestli nakonec padne Gentoo a bez systemd to nepůjde, tak odcházím k *BSD a vypadá to, že takových bude víc.
Tak já to shrnu, ju? Správce služeb má služby spravovat, ne nahrazovat, když se mu náhodou něco nehodí, ne je nutit, aby byly na konkrétním správci závislé.
Tohle systemd perfektně splňuje.
Má je prostě spustit ve správném pořadí, může je i hlídat a dle nastavení provádět různé akce při jejich selhání.
Kdyby to mělo jenom spouštět služby, pak je to spouštěč služeb, ne správce služeb. Správce služeb má služby spravovat po celou dobu běhu systému, tzn. má reagovat na změny v systému a na jejich základě měnit stav služeb. Správce sítě také nemáte jenom od toho, aby vám síť jednou na začátku nakonfiguroval a pak už se o ní nestaral, ale chcete po něm, aby síť průběžně udržoval, opravoval a také přizpůsoboval změnám. To samé správce počítače – to není někdo, kdo počítač nainstaluje a předá vám ho, ale někdo, kdo se o něj stará po celou dobu životnosti počítače.
V okamžiku, kdy toho začne dělat víc, tak to má být samostatná služba, kterou nemusím používat, která mě do ničeho nenutí a kterou kdykoliv nahradím jinou službou, která mi bude víc vyhovovat.
systemd toho víc nedělá. Existují samostatné služby vyvíjené v rámci projektu systemd, obvykle pojmenované systemd-*. Ty ovšem nejsou součástí správce služeb, jsou to přesně ty samostatné služby, které nemusíte používat a kdykoli je můžete nahradit.
To, že init uvede něco do zcela neurčitého stavu, jak tu zaznělo, to se dříve stávalo, pokud byl nějaký problém a tak jako tak bylo třeba jej vyřešit.
Ne, to se nestávalo jen dříve a jen v případě, že je nějaký problém. Když třeba připojíte flash disk, skončí systém ve dvou různých stavech v závislosti na tom, jestli jste flash disk připojil před nebo po okamžiku mountování souborových systémů. To samé, když připojíte síťový kabel.
Toto chování kupodivu poslední dobou způsobuje spíše systemd, než cokoliv jiného.
Například?
A ta neskutečná arogance, požadovat po někom, aby upravil svůj SW tak prasácky, aby se systemd fungoval, to je ten největší narovnák na vohejbák na na natahováku na zkracováku.
Kdy to kdo po někom požadoval?
A to, že tenhle celej nesmysl navíc komplikuje portování aplikací mezi různými OS, to už je jen taková třešnička na dortu.
Jak systemd komplikuje portování mezi různými OS?
Jestli nakonec padne Gentoo a bez systemd to nepůjde, tak odcházím k *BSD a vypadá to, že takových bude víc.
No jo, vyhrožování v diskusích, že odejdete, to vám jde. Akorát jste zapomněl na jednu věc – aby vyhrožování odchodem bylo účinné, musel by váš odchod někomu vadit. Nebo spoléháte na to, že uživatelé *BSD se chopí vývoje systemd, protože se zděsí, že k nim jinak přitáhne partička uživatelů, která jim začne vysvětlovat, jak to dělají blbě a měli by to dělat úplně jinak, a oč méně budou mít skutečných argumentů, o to více si jich prostě vymyslí?
Tak třeba systemd nahradil logování zabugovaným binárním krámem, který nefunguje ani přes různé verze a nedá se vypnout. Dá se sice log přeposlat dál, ale když se ta systémd ptákovina sesype, přeposílání se sesype s ní. Takže nejen že nahradil, ale velmi omezuje i použití něčeho jiného.
Do toho, kdy si co strčím do kterýho portu, do toho initu nic není. Buď v dané situaci může spustit závislosti, nebo nemůže. Na síť i na úložiště doteď fungují jiné samostatné služby, které se na to specializují a že se mi něco spustí automaticky po nějakém chybovém stavu, který skončil, to osobně nepovažuji za žádoucí stav. Pokud se mi například přehřívá switch a restartuje se, opravdu nechci, aby se mi služba sama nahazovala a shazovala. Já vím, automaticky je to pohodlné, ale já pracuji v prostředí, kde se každá chyba zkoumá a zjišťuje se, jak jí do budoucna předejít a hlavně se po každé chybě zjišťuje, co dalšího se mohlo pokazit. V tom mi automaticky restartující se služba opravdu nepomůže a nadělá víc škody, jak užitku. V tomto kontextu jsem vlastně zcela proti univerzálnímu správci služeb, co spravovat chci, většinou na desktopu, to má svoje funkční a dostatečně prověření řešení už nyní a zbytek je jen maskování chyb.
Nevysvětlitelné chování systemd způsobuje například dodrbaný log, což bohužel není situace zase tak moc výjimečná, ale dalo by se pokračovat, třeba jsem měl v ruce tři identické notebooky s naklonovanou instalací RH a i když nebyl žádný z nich v okamžiku bootu připojený k síti, zcela náhodně kterýkoliv z nich na tu síť čekal v intervalu půl minuty až několik minut, možná i do nekonečna, kdybych na to měl tolik času.
Jak už někdo řekl, krátká paměť. Požadovat po někom, aby si přidal závislosti proto, že jsem mu právě rozbil roky fungující aplikaci, je prostě neskutečná arogance a prasárna hodná MS. Vzhledem k tomu, že to páni Lenártovci evidentně věděli, že něco rozdrbou, tak bych považoval za slušnost s implementací podobných nesmyslů počkat a na téma kde je chyba vyvolat diskuzi. Zprasit to a pak kopat kolem sebe, jak jsou všichni blbci a dělají to špatně, to je opravdu nejvhodnější možný přístup. Tím se dostáváme k dalšímu faktu, že LP je prostě arogantní blbec neschopný jakékoliv rozumné komunikace, který dokáže akorát kopat kolem sebe bez pádných argumentů, omílajíc při tom pořád dokola svoji propagandu, případně rovnou likviduje nepohodlné příspěvky, vlákna, bug reporty atd.. Někteří lidi mi jej zde dost připomínají, jenom nemají naštěstí tu moc něco mazat a tak jejich blbost budiž uchována až do konce Roota.
Jak systemd komplikuje portování? Tím, že porušuje kompatibilitu spousty věcí a nutí vývojáře buď dělat práci 2x, pro systemd a bez něj? A někteří se pak rozhodnou pro jednu variantu a pokud je to ta se systemd, tak danou část kódu musí někdo další upravovat, aby to fungovalo i na systémech, které "nemají to štestí užívat si úžasnosti systemd"?
Nevyhrožuju, konstatuju. Kdybych chtěl vyhrožovat, tak jedině Leníkovi, ale na to jsou tu jiní a kdybych náhodou chtěl někdy někomu vyhrožovat, tak až v situaci, kdy jsem připraven výhrůžky splnit. Vzhledem k tomu, že mi za to ani on, ani nikdo jiný zatím nestojí, spokojím se s prostým sdělením svých úmyslů světu, přičemž jestli to někoho zajímá, to nechám na každém a zároveň mohu s čistým svědomím prohlásit, že je mi to fuk.
Tak, tím se dostávám k poslední zoufalé větě, myslím jsem ke každému z bodů řekl reálný argument, který jsem si sám z prstu nevycucal, plus jsem jej doplnil řádnou mírou hejtu, což mi zlepšilo náladu. Pac a pusu :*
Automatická závislost jednotek typu mount se odvozuje od jména jednotky, nebo od skutečné cesty uvedené v Where? Protože se adresáře v názvu jednotky oddělují pomlčkou, která může být součástí jména adresáře, může nastat případ, kdy podle názvu jednotek půjde o hierarchii, ale v souborovém systému to tak nebude – např. adresáře /mnt/test-archiv a /mnt/test/archiv/2016.
Driv stacilo pouzit normalni cestu k zarizeni a cestu k adresari, kam jsem to zarizeni chtel pripojit. Nyni budu muset jeste poustet dalsi prikaz, abych dostal escapovanou variantu a byl jsi jisty, ze to systemd bude chapat spravne. Jako bonus je escapovana cesta, ktera je jeste hure citelna nez original.
To same jiz nejak resi device-mapper, ten ty pomlcky nejak zdvojuje, napr. /dev/mapper/VolGroup_host--name-LogVol_test--archiv - coz odpovida - /dev/VolGroup_host-name/LogVol_test-archiv. Nechapu, proc se kolo muselo vymyslet znova a nepouzil se jiz aspon pouzivany format.
Pro spouštění procesů v pravidelných intervalech se dříve používal cron.
pouzival? wtf!? pocuj mlady, ty si asi v zivote nevidel normalny linux, normalny server a asi si ani na nom nikdy nic nerobil. inac by si tu take pitchoviny nepisal. takze sa pekne vrat k svojim windowsom, pustaj si v nich to krasne ubuntu a v nom si mozes pustat ten super cool systemd a prestan tu pisat kraviny.
tento svet uz je v totalnych srackach...
Tak v pristim releasu bude cron ze vsech systemd dister odstranen a bude se pouzivat systemd bastl. Je to dalsi cast Linuxu, kterou systemd pohltil a "zjednodusil". Do roka a do dne bude Linux OS "jednoduchy" a "srozumitelny", uplne jak Widle. Pocitam, ze rou dobou bude systemd zabirat na disku asi tolik mista, jako KDE a Gnome dohromady.
Máte sice pravdu, že je možná věta napsána nešikovně. Cron jistě funguje bezvadně, aspoň tedy já na OpenWRT a serveru s ním problém nemám. Taky se to často dá snadno přenést na *BSD.
I kritiku v rozčílení ale můžete psát slušně. Co si jinak o nás ti Windowsáci pomyslí? My si přece nepotřebujeme dokazovat, že jsme lepší a už vůbec ne se snižovat k nějakým nadávkám ;-)
Mimochodem už upstart měl v plánu nahradit cron. http://upstart.ubuntu.com/faq.html#replace-cron
Yes. A planned feature for Upstart is the ability to generate events at a particular scheduled time, regular scheduled time or particular timed intervals.
We also plan to be able to generate timed events based on other non-timed events, for example
To nezni jako nahradit, ale jako vytvorit paralelne dalsi vec, kterou muzu, ale nemusim pouzit a eventuelne pouziju tam, kde to ma vic smyslu, nez cron. To neni pripad systemdebil, kde uz nechodi ani screen a ten cron nejspis uplne prestane fungovat, protoze sysemdebil hned sestreli vsechno, co cron spusti. Tedy by to alespon odpovidalo dosavadni systemdebil "logice".
Tim ale neni receno, ze cron, atd a anacron nebude mozno pouzivat paralelne. Take neni jasne, jakym zpusobem by je to melo nahradit. Je take mozne, ze vyvojari upstartu neberou tak silne halucigeny, jako vyvojaru systemd a jednoduse by se dal pouzival crontab, akorat by ho cetl jiny daemon. To v systemd jaksi neni ten pripad.
Nerikam, ze nepujde pouzivat cron, ale /etc/crontab. A to take nejde, protoze systemd to resi uplne jinak. Nicmene pry existuje jakysi bastl, ktery crontab prevadi do systemd formatu.
To, ze systemd ignoruje crontab a pouziva svuj vlastni zapis, povede k tomu, ze cron a crontab vymizi a zbyde nam systemd. Takze sbohem prehlednosti, kdy otevru jeden soubor a vidim, co to ma kdy delat.
Nic vám nebrání i se systemd provozovat libovolný cron, který se bude řídit svým crontabem. Jinak crontab není zrovna dobrý příklad, na první pohled to vypadá, že je to jednotný formát, ve skutečnosti ale má každý cron svůj vlastní trochu odlišní formát. Že otevřete jeden soubor a vše vidíte je také nesmysl - máte systémový crontab, uživatelské crontaby a skripty v /etc/cron.*.
Ano, jirsaku, debil jako ty nemuze pochopit ani neco tak trivialniho, jako ze si kazdej uzivatl v cronu (JEDNOM) pousti to, co sam uzna ze si poustet chce. A proto tu je 10 ruznych cronu, protoze kazdej od toho ceka neco trochu jinyho a muze si kupodivu VYBRAT. Coz dementi jako ty a nekola samo nedokazou pojmout.
Doplním takový příběh k .device a .mount a o tom, jak je "hrozně užitečné" mít automatické akce při aktivaci nějakého zařízení.
Selhal hw řadič na kterém byla 1/3 disků z R10 (mdadm). Bohužel zrovna celé jedno zrcadlo. mdadm stihl na zbývající disky ještě něco zapsat (a poslal tak fs do kytek). Mno ale o tom tento příběh není.
Po profackování řadiče se tento při spuštění znovu objevil i s disky. mdadm se odmítl sestavit, prostě proto, že mu neseděla data a neměl dostatek disků. Do této chvíle je vše v pořádku.
Byl čas, chtěl jsem si s tím hrát, data byla na zálohách (v žádném případě nebylo v úmyslu používat data na tomto zbořeném poli), takže o nic nešlo. Sestavil jsem mdadm -A --force s tím, že s tím pro efekt zkusím něco udělat (třeba to blokové zařízení jako celek někam zkopírovat a dál si s tím hrát).
Jenže, co se nestalo. Systemd zjistil, že se mu tam objevilo nějaké device a neměl vůbec nic lepšího na práci, než to začít připojovat (nejdřív fsck, potom mount). Jenže fsck je by default nastaven tak, aby automaticky prováděl "bezpečné opravy" (což je dost relativní). Takže na ten block device zapsal, čímž se veškeré pokusy o opravu omezily na tento jeden pokus...
Tož tak. Je prostě "hrozně fajn", kdy neustále něco hrabe adminovi pod rukama. To se potom dobře pracuje.
Čistě náhodou má, ale to nebylo jádrem sdělení mého komentáře.
Když se v systému objeví nějaké nové block device, tak jako admin nepředpokládám, že se mi do toho něco začne automaticky hrabat a zapisovat na to. (Evidentně se doba mění, takže to dopadne jak ve Widlích, kde systém detekuje nové block device a hned začnou vyskakovat hlášky o inicializaci (vytvoření gpt/mbr) apod.)
To Palo: Nejen zakomentovat ve fstabu, ale také reloadnout systemd:
systemd-fstab-generator is a generator that translates /etc/fstab (see fstab(5) for details) into native systemd units early at boot and when configuration of the system manager is reloaded. This will instantiate mount and swap units as necessary.
Kdyz vybehly win8, myslel jsem, ze az win7 skonci, vratim se k unixu.
Mezitim se ale do debianu dostal systemd, a zmenil u*x OS na generator nahodnych (a nechtenych) stavu.
Tak holt asi zkusim ty win10 :-(
Proc jde svc v solaris udelat jednou a dobre, zatimco systemd programuje arogance s neznalosti, bez ohledu na kontinuitu, jak se zrovna ten ktery den vyspi ?
Bohužel v případě systemd často správce řekl systému, co se má stát, způsobem který léta fungoval. Protože ten způsob léta fungoval tak se našel někdo kdo do systemd nabastlil emulaci toho způsobu, která bohužel často dělá jen "základní" emulaci - tedy interpretuje to co správce nastavil špatně. Takže na administrátora ani při upgradu nebo reinstalaci systému nevypadne varování, že používá ve skutečnosti nepodporovaný postup, ale místo toho mu to pod rukama potichu rozbíjí systém.
To je způsobeno tím, že systemd je revoluce, nikoli evoluce. Spousta chyb, která se za léta odladila, se bude vyskytovat znovu a budou se znovu ladit, tak jak se na "kompletní refaktor" sluší a patří.
Což je důsledek té snahy o zpětnou kompatibilitu, kterou tady mnozí vyžadují.
Výhodou toho kompletního refaktoru je to, že se ty chyby odladí už jen jednou a nebudou se vynořovat znovu a znovu s každým přidáním nové komponenty.
Mně by se taky mnohem víc líbilo, kdyby se správa služeb v Linuxu opravila evolučním způsobem, ale podle mne je to v současném stavu už nemožné, těch vrstev různých hacků je na sobě už příliš.
Kompatibilní se sebou je systemd tak, že novější verze přečte starší nastavení.
Chování mezi verzemi mění kde co. Od jádra počínaje až po ten screen.
Pro tupce Stena .... visi mi tu trebas upgrade apache 2.2 -> 2.4 ... to ze je treba prepsat (lehce) konfiguraci se vi ... chmm od doby vydani 2.4, coz je slusnych par patku zpet. Distro na to jeste extra upozornuje a ... NIC mi nebrani vesele dal pouzivat 2.2 ... dokud si nenajdu cas. Mam na to ... ROKY.
Kupodivu mi kvuli tomu ani neprestane fungovat sit, ani se mi neposere logovani, ani mi neprestane fungovat dns/dhcp/ntp/... protoze ... to s tim NIJAK nesouvisi.
Ale tohle neni aktualizace, to je upgrade, v ramci jednotlivych revizi se NIC nemeni.
Zato v systemd se meni COKOLI KDYKOLI a JAKKOLI. A kdyz to obratem nepatchnes, zhrouti se libovolna soucast systemu.
Chování Apache se mění poměrně často. Že se to neprojeví u tebe, je proto, že distribuce ty změny odkládají (upravují), třeba v Debianu má poslední Apache 2.2 49 patchů, z nichž alespoň 5 mění výchozí nastavení či kompilační volby. Překvapení, co? Systemd v tomhle není výjimka a Debian si samozřejmě hlídá.
Systemd tě taky nijak nenutí něco aktualizovat. Změny chování při aktualizaci distribuce dokumentují u systemd úplně stejně jako u toho Apache. Systemd ti dokonce nebrání dál vesele používat ten Linux z roku 1995, dokud si nenajdeš čas se naučit, jak funguje PAM.
Je mimochodem zajímavý, jak ty bez systemd víš úplně přesně, jak by to nám, kteří systemd používáme, vlastně vůbec nemělo fungovat. Asi hodně kvalitní křišťálová koule. Nebo LSD.
Změnilo se jen to, co se stane, pokud nějaké nastavení neuvedete. Což je naprosto normální pro všechen software, od jádra až po ten screen.
Aha. Tak me se az dosud zdalo, ze veci mivaji nejake defaulty, ktere maji tendenci drzet napric verzemi a meni se jen vzacne, pokud vubec. V systemd se ale meni jaksi nahodne a bez toho, ze by se nekdo zamyslel a otestoval, co se tim posere. Defaulty nyni asi zalezi na tom, jak se Poettering vyspinkal.
Ano, ale urcite je vhodne rozlisovat akce na akce, ktere se maji provadet pouze jednou behem startu systemu a na ty, ktere se mohou provest kdykoliv behem behu systemu. Zatim systemd neznam, ale toto by se mi libilo... jde o to mit tu moznost.
U stareho dobreho fstabu a initu ruznych znacek se dala pouzit kombinace voleb auto, noauto, nofail, _netdev a docilit tak konzistentnich a bezpecnych stavu.
Ano, ale urcite je vhodne rozlisovat akce na akce, ktere se maji provadet pouze jednou behem startu systemu a na ty, ktere se mohou provest kdykoliv behem behu systemu. Zatim systemd neznam, ale toto by se mi libilo... jde o to mit tu moznost.
U stareho dobreho fstabu a initu ruznych znacek se dala pouzit kombinace voleb auto, noauto, nofail, _netdev a docilit tak konzistentnich a bezpecnych stavu.
sorry, asi buga v redakcnim systemu, protoze jsem se dvakrat snazil odpovedet na https://www.root.cz/clanky/nebojte-se-systemd-zbyvajici-typy-jednotek/nazory/881439/ a po kazde to tu odpoved zaradilo spatne...
OT: btw. jak se pote, co odpovim na neco v diskuzi, zase jednoduse vratim, tam kde jsem byl pred tim
To je ale úplně jedno.
Standardně to vždy probíhalo tak, že pokud při bootu nějaké device (definované v fstab) chybělo, rc systém se s tím nějakým způsobem ne/vypořádal (recovery mod apod.), ale především, automatické mountování na základě fstabu se uplatňoval pouze při bootu (alespoň ve všech mě známých distribucích), takže když se později dané zařízení objevilo (po nějakém zásahu admina), tak se nestalo vůbec nic a admin si sám rozhodl, co s tím udělá.
Tohle je další a velmi podstatná změna chování systému.
Ano, je skoda, ze nepise v C#, aby kazdy hned videl, ze je to silenec.
Jinak nevim, jak chcete Poetteringa donutit ke spolupraci. To leda, ze by nekde ukradl prase, vy jste mel dukazy a mohl ho vydirat. Poettering nekomunikuje, kritiku ignoruje ci odmita a jako bozstvo ze sveho Olympu milostive diktuje, co se vam ma libit. Poettering jiz dostatecne dokazal, ze neni tymovy clovek, ale ze je systematicky rozbijec, ktery se opira o vahu Red Hatu. Nebyt toho, nikdo se s nim nebavil a systemd by skoncil nekde v galerii opravdu spatnych napadu.
Rad by som pripomenul fakt, ktory je podla mojho nazoru velmi dolezity, ale vo Vasom prispevku nie je vobec spomenuty. Ide o to, ze systemd pouziva zariadenie iba v pripade, ze je explicitne oznacene tagom :systemd: v udev databaze a prislusna udev udalost ma nastaveny kluc SYSTEMD_READY=1. Typicky priklad pouzitia SYSTEMD_READY=0, i.e. storage subsystem oznamuje systemd, ze s danym blokovym zariadenim nema zatial pracovat, je v LVM udev pravidlach.
Myslim, si ze Vasa situacia je mozno hodna bug reportu proti mdadm. Pravdepodobne by to chcelo nejaku zmenu v mdadm udev pravidlach, aby pole ktore bolo zlozene s --force bolo oznacene ako SYSTEMD_READY=0. systemd potom nezacne mountovat filesystem.
Je mozne, ze je nieco rozbite v systemd vzhladom k problemu ktory popisal Heron. Ja si skor myslim, ze je problem v mdadm udev pravidlach kedy je nespravne oznacene ako pouzitelne zariadenie s ktorym je nejaky problem.
To ze systemd reaguje dynamicky na udalosti v systeme ako napriklad pridanie alebo odstranenie blokoveho zariadenia je vyznacna vlastnost systemd, ktorou sa odlisuje prave od SysVInit. IIRC, Heronov fstab zaznam neobsahoval noauto a teda systemd sa snazilo pripojit dany suborovy system automaticky potom ako sa objavilo potrebne diskove zariadenie. Ako som uz spominal, to ze sa objavilo nie je problem, ale ze bolo pravdepodobne chybne oznacene za pripravene pre pouzitie.
Je mozne, ze je nieco rozbite v systemd vzhladom k problemu ktory popisal Heron. Ja si skor myslim, ze je problem v mdadm udev pravidlach kedy je nespravne oznacene ako pouzitelne zariadenie s ktorym je nejaky problem.
Fascinující. Upřímně řečeno, psal jsem to spíš jako upozornění pro ostatní, co vše se může stát a mezitím se tady v diskusi probírá už pomalu půlka systémových komponent. Prostě fascinující.
Dřív na to stačilo jedno zařízení v /dev s major minor, a jeden mount.
Ale to nebylo dost moderne khulloidni ... a navic to proste a bez kecu fungovalo. Hele, mam tu par krabek, ve kterejch mam statickej dev ... proste co si tam dam to tam je a nazdar bazar. A je to parada, nikde se mi do niceho nesere udev a jeho neustaly objevovani se a mizeni veci.
Titulek celeho serialu je neuveritelne spatne. My se systemd nebojime. My ho k nicemu nepotrebuje a povazujeme ho za neefektivni pro zavedene, vyladene, funkcni prumyslove a produkcni systemy. Je to bastl zabijejici efektivitu prace studiem nekompatibilit, nestandardu a rozmaru pana tvurce jehoz jmeno se u nas ve firme stalo sprostym slovem, Bastl zabijejici stabilitu, likvidujici drive bez problemu fungujici systemy, ktery nas nuti hledat alternativy, ktere timto bordelem nejsou postizeny (Devuan, atd.)
V čem je termín „složka“ hloupý? Nebo to tvrdíte jen proto, že si myslíte, že jde o novotvar z Windows? Ten pojem je starší než „adresář“ (složka/folder je z roku 1958, adresář/directory z roku 1965). Jediné, co bych vytkl, je, že znamená něco trochu jiného a zde by skutečně mělo být „adresář“.
Nebo jsi jen další, kdo neví, jaký je mezi nimi rozdíl. Třeba ti pomůže Wikipedie:
There is a difference between a directory, which is a file system concept, and the graphical user interface metaphor that is used to represent it (a folder). […] Many operating systems also have the concept of "smart folders" that reflect the results of a file system search or other operation. These folders do not represent a directory in the file hierarchy. Many email clients allow the creation of folders to organize email. These folders have no corresponding representation in the filesystem structure.
Kdybys uměl číst, tak výše najdeš:
Nebo to tvrdíte jen proto, že si myslíte, že jde o novotvar z Windows? Ten pojem je starší než „adresář“ (složka/folder je z roku 1958, adresář/directory z roku 1965).
Takže ses ukázal jen jako ten zoufalec, co se snaží hrozně nevypadat jako lama :P
The name folder, presenting an analogy to the file folder used in offices, and used in a hierarchical file system design for the Electronic Recording Machine, Accounting (ERMA) Mark 1 published in 1958[3] as well as by Xerox Star....
Tak z tohoto IT prostredi vetsina zde pritomnych opravdu nepochazi. Pochazi naopak z prostredi, kde se nic neBFUizovalo a kde clovek musel vedet, kde co lezi a mluvilo se tvrde o directory.
Vy jste přímo exemplární případ...
Když mluvím o adresáři/directory - samozřejmě, že mám na mysli to co je součástí souborového systému.
MS-ŠkolstvíCZ ovšem naučilo lidi říkat "složka" úplně všemu. Takže borec má spuštěný třeba mc a kváká mně tam o složkách - z toho by mně jeblo.
Patrně jste také produktem toho zvláštního "moderního" školství. Příchylnost k systemd by tomu odpovídala. Prostě ty Windows chcete mít i v unixovém OS včetně teminologie.
Ano, pak by to totiž vypadalo jako ten sluníčkový Linux. Fuj fuj, zůstaňte raději u komerčních Windows, tam snad žádné granty nehrozí.
Děkuji autorovi seriálu, že zmínil mé oblíbené "generátory."
Skvěle ilustrují tu perverzi a úchylnost myšlení Poeteringa a jeho bandy.
Vezmeme standardní konfigurační soubor, zpracovatelný standardní utilitou a vygenerujme z něj řadu dílčích jednotek, které budeme dále hrdinně zpracovávat. :-)
Klíč bych hledal v tom "nahrazuje." Nebo přesněji "snaží se nahrazovat."
No a následné "řešení", které z původně spolehlivých věcí udělá ruskou ruletu, to je taková ta pověstná třešnička na dortu.
Pokud by systemd byl pouhou náhradou starého SysV initu beze snahy ničit léty prověřené záležitosti, dalo by se to akceptovat jako jedna z alternativ, řešících staré bolesti. Takto je to nestravitelná břečka.
No jo, jenže to by se muselo začít opravdu přemýšlet a dělat složitá a dlouhodobá rozhodnutí a postupovat systematicky. No a kdyby to nedopadlo, tak by se mu na tu slávu všichni vysr.... To bude ten problém.
Více než 1/2 století trvalo, než se nějakým způsobem vývoj, obecně, propracoval k principům modularity, tak proč se na to všechno nevysr...během jednoho programu že.
Jak už jsem psal. Toto vypustit M$, tak se mu všichni vysmějí.
Mohl byste mi poradit dotaz, jak se mám Googlu zeptat, co si diskutující NULL představuje pod "modulárností systémů"? Já si pod tím cosi představuju, je to v souladu s tím, co se o modulárnosti systémů a aplikací píše různě po internetu i v knihách, a systemd mi připadá více modulární, než systémy postavené na SysVinitu. Takže tím, že po sobě budeme střílet UTFG, se asi nikam nedostaneme, a nezbývá, než abyste napsal, co je podle vás na systemd nemodulární.
http://0pointer.de/blog/projects/the-biggest-myths.html
Cislo 1.
Na cem _konkretne_ s tim nesouhlasis?
2013 ?
To už je trošku staré ne? Ale tak hodí se, že?
"This also is entire non-sense. A systemd platform is actually much simpler than traditional Linuxes because it unifies system objects and their dependencies as systemd units"
No třeba tohle.Věty typu alá "Je výhodnější protože má výhodné jednotky" nebo "Už se nikdy nenadřete, protože prášek na leštění leští za Vás ... " jsou fakt k smíchu.
Jinak je mi to celkem jedno, strávil bych to až na tohle:
"Myth: systemd is not modular"
Já jim neberu, že něco nemusí zahrnout do kompilace, ale systemd není modulární jako modul "Linuxu" a vyžaduje po aplikacích, aby implementovaly jejich API a tím se pro dost z nich stává nemožné udržovat systemd a nonsystemd verze. Viz Gnome (které se ale musí přizpůsobit distribucím ). . . které pořaduje systemd-logind, který ale nemůže běžet oddělen od zbytku toho "modulárního" systemd, i kdyby se měl chovat jenom jako fake a vracet 0, takže jaká modularita? Takže z gnome, které jelo pokud vím všude je najednou systemd{-}Gnome. Nejsem si jistý, existoval nějaký workaround, ale myslel jsem, že workaroundy měly zmizet . . ..
Nj, dalsi debiol ... pokud je neco modularni, tak se libovolnej modul da nahradit cimkoli jinym, a zaroven muze bezet i zcela jinde.
Zadnej modul jadra neni zavislej na kernelu, muzes si ho vzit a pouzivat uplne jinde, jen se musis podivat jak ho zavolat. A stejne tak ho muzes vymenit za cokolil jinyho, kdyz to bude mit stejny rozhrani. Naprosto bezne se to kupodivu deje. Proto dneska treba nemas v kernelu ext2 nebo ext3 protoze ext4 umi jedno i druhy nahradit a aplikace nic nepozna. Zazrak co?
I v tech blbych widlich si muzes nainstalovat treba ruzny kodeky videa a widle budou pouzivat ten, kerej jim predhodis.
V pripade tyhoe sracky jedno ani druhy nejde, protoze kdyby ses rozhod vymenit A, musis vymenit i B, C D ... protoze bez toho A nebude nic z toho fungovat. A ne, ani napsat vlastni implementaci A nemuzes, protoze nez ji dopises, tak bude B, C i D vyzadovat uplne jiny rozhrani a budopu se chovat uplne jinak.
Zadnej modul jadra neni zavislej na kernelu, muzes si ho vzit a pouzivat uplne jinde, jen se musis podivat jak ho zavolat.
Aha, tak proto je ve FreeBSD a Windows tak dobrá podporu ext4. Ono totiž stačilo vzít modul z Linuxu a jen ho zavolat… (Varování: sarkasmus)
A stejne tak ho muzes vymenit za cokolil jinyho, kdyz to bude mit stejny rozhrani.
Představ si, že když to bude mít stejný rozhraní, tak to jde i u systemd. Zázrak!
Proto dneska treba nemas v kernelu ext2 nebo ext3 protoze ext4 umi jedno i druhy nahradit a aplikace nic nepozna.
To, že ext4 umí nahradit ext3, nemá nic společného s modularitou, ale s tím, že modul ext4 byl napsán odvozením od ext3. Třeba moduly btrfs či aes nedokáží modul ext3 nahradit tak, že by aplikace nic nepoznala.
@Sten
On ten samozřejmě Vim není modul "Linuxu", protože ho vyvíjí totálně odděleně někdo jiný, na své triko. Ale pokud vezmeš modul [ 1 ] jako část celého ekosystému "linuxu", tak je nakonec "linux" OS poskládán z takových modulů na různých úrovních, což se mi na něm líbilo. A ne, systemd nemůžeš vyndat jen tak a vyměnit, aby ti vše jelo dál. Minimálně nyní kvůli Gnome, myslím že Xfce, nyní se sere do cronů, fs, když ti to nadělá logy a vyměníš ho, tak si s nimi akorát tak vytřeš prdel, pokud si je zase nepřečeš přes systemd, ale kdo ti zaručí že 5 let staré přečteš taky, jako ty bývalé textové? Nikdo. Ale hurá, máme to nové (sarcasm)
[ 1 ] On ale modul není definován jako pevná část na jediném místě architektury, stačí akorát splnit kritéria "zapouzdření", samostatnosti a vyměnitelnosti, když už si nechceš plést termíny a termity
Glibc a GTK rozhodně vyměnit nepůjdou. To ale byly architektonické rozhodnutí hned na začátku projektu: gdk je nadstavbou glibc. Gtk je nadstavbou nad gdk a Gnome je postaven na gtk. Myslím, že gnome by bez PAMu teoreticky jet mohlo, jaká je skutečná situace netuším.
A nedochází mi proč se mi teď systemd-logind spouští, i když používám sysvinit. Výsledek je akorát, že za kritického stavu baterky, kdy se mi počítač normálně hibernoval, místo toho systemd-logind umře, čímž mi zabije mojí grafickou session pod rukama, ale počítač se nehibernuje, takže když u něj naopak nejsem tak nakonec vyžere baterku úplně a chcípne.
Kdyby se alespoň při (dist-)upgradu debian zeptal jestli chci systemd-logind používat, nebo ne. Obzvlášť když nepoužívám gdm (ani jiný grafický login), a nepoužívám gnome jako desktop environment (pouze spouštím vybrané gnome-based programy).
ConsoleKit? :D
To, že systemd něco nahradí, snad neznamená, že to přestane existovat, ne? Závislosti definují vývojáři, pokud chcete jiné, tak si asi budete muset sehnat vývojáře, kteří také nestojí o systemd. Pokud vím, tak takových projektů je několik (třeba Devuan), ale nějak trpí nedostatkem aktivních lidí a peněz.
Vyvojari vyvijeji s ohledem na majoritni distra, hlavne ta komercni. Ta udelal uchylne rozhodnuti prejit na systemd, ktery neni pouhou volitelnou komponentou, ale komponentou nevystrnaditelnou a ktera se vnucuje jako zavislost jinych veci, protoze ty je nutno predelat tak, aby s tim krapem fungovaly. Takze se rozjel vlak, kdy vse pujde do prdele a Poettering se stane tak nenahraditelnym, ze snad jednou bude i prezidentem Zeme.
Třeba takový Debian či Arch jsou komerční distra jak noha…
Jako závislost čeho se vnucuje? GNOME na systemd přešel dobrovolně, KDE na systemd nezávisí. Oboje bylo svobodné rozhodnutí jeho vývojářů. Screen a tmux špatně používají PAM sessions (spoléhají se na to, že sessions se neuklízí, protože to dodnes nikdo neimplementoval), pokud si to opraví, tak budou fungovat správně i se systemd ve výchozím nastavení. Bez jakékoliv závislosti na systemd.
A jen tak mimochodem:
sten@kink ~ $ ldd /usr/bin/screen
linux-vdso.so.1 (0x00007ffed19e1000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f1f03a60000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f1f03829000)
libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007f1f03619000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1f0326e000)
libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007f1f03048000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1f02e44000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1f03c8a000)
login a jak dobře to fungovalo.Hmm, co mi to jen připomíná?
PAM byl prostě dobrý nápad. Nikdo z nás nechce, aby věci ustrnuly na místě. Rozumné změny jsou nutné.
Systemd je příšerný nápad, který přináší spoustu problémů hlavně tím, že nechce být pouhým init systémem, ale chce pohltit takřka vše. Pokud by se snažil pouze o to, co měl dělat původně, nikomu by příliš nevadil.
Mimochodem s PAM přišel SUN, pokud vím(1994 nebo 1995). To jak dobrý nápad to byl dokazuje nepřímo i to, že byl vcelku bez keců přijat třeba do FreeBSD.
Vaší manipulativní demagogickou exhibici nechápu. Aha... Poeteringovec... Jasné...
Systemd byl od počátku projektován jako náhrada přinejmenším initu, mountu a inetd. Měl prakticky stejné cíle, ke kterým vývojem dospěl upstart, že by bylo potřeba spojit v novém initu, ale který je nikdy pořádně neimplementoval (hlavně z toho důvodu, že byl zpočátku napsán právě jen jako náhrada initu, takže by to znamenalo většinu přepsat).
FreeBSD zřejmě nikdy nebude ani zvažovat přijímání systemd, protože systemd je závislý na vlastnostech linuxového jádra, které FreeBSD prostě nemá a mít nechce. Přijetí PAM ve FreeBSD rozhodně nebylo bez keců, což byl i důvod, proč si nakonec napsali vlastní implementaci PAMu (OpenPAM).
Při každé větší změně se vedou diskuse. V případě PAM na FreeBSD to nebylo zdaleka takové jako v případě systemd. Důležité je, že byl přijat na základě technických argumentů nejen lidmi v centru dění, ale poměrně rychle i uživateli. V případě BSD projektů je každá taková událost důkazem kvality.
Závislost systemd na jednom konkrétním jádře OS - to také vypovídá...
*BSD je prostě Unix v pravém slova smyslu. Z Linuxových distribucí se bohužel stává břečka. Nikdy nevynikaly extrémní péčí o kvalitu ani nějakou superkoncepčností, ale pořád to šlo - ty komerční a třeba i CentOS nebo Debian bývaly dobrá volba... To je minulost díky i takovým mlamojům jako jste vy.
Škoda, ale mnohdy se dá použít právě třeba FreeBSD. Vývojářům patří velký dík.
U mě jde spíš o to, jakým způsobem systemd prosazuje.
Jak jsem psal, kdyby to bylo stylem, že by si to implementovalo své vlastní věci (já používám timesyncd tam, kde o nic nejde, na ostrých serverech to musíme mít v souhlasu se státním etalonem, takže tam mám ntp pro lepší monitoring; networkd - protože interfaces v Debianu se mi nelíbí a NM nefunguje; resolved; nspawn - pro mě vynikající nástroj; timer vedle cronu atd.), tak neřeknu ani popel. Tam kde chci si to nastavím a použiji. Tam, kde nechci, tak to nepoužiji. Prostě, kdyby systemd byl jedním ze 40tis. balíčků v repu, tak jsem rád, že tam je, protože se mi může hodit (a hodí se mi).
Ale třeba už jen ten bugreport tmux ukazuje co je špatně. Tam je totiž špatně úplně všechno. Nějaký zabugovaný program si po sobě neuklízí procesy. Normální by bylo opravit ten program. Ne, místo toho LP napadne, že by bylo skvělé zavést střílení procesů při odhlášení. Jenže toto "řešení" něco rozbije, tak je nutné tlačit na autory toho něčeho. Takže tlak na opravu toho původního zabugovaného programu slábne.
Tohle se v bledě modrém stalo s ext4. Některé blbě napsané programy při pádu stroje ztrácely své nastavení. Dřív na ext3 se to, údajně, nestávalo. Důvod, proč se to nestávalo bylo výchozí nastavení žurnálování na ordered, které zajišťovalo, že při změně metadat se nejdříve uloží data a potom metadata. Debilně napsané programy toho zneužívali tak, že místo volání (f)(data)sync při změně konfigurace prostě zavolali rename (změna metadat). Tohle fungovalo jen a pouze na ext3 a jen a pouze v nějakém (bohužel zrovna defaultním) nastavení. Samozřejmě, správným řešením by bylo opravit ty vadné programy. Co se ale nestalo, ext4 dostala heuristiku na rozpoznávání vadných programů, aby se k nim chovala stejně jako ext3 ordered. Od té doby ext4 nepoužívám. Čím dřív se odhalí vadné programy, tím lépe, alespoň vím, co nepožívat.
Kdysi jsem se tu s Jirsákem hádal o tom, jaká je blbost mít (snadnou) možnost restart on failure. A došlo na moje slova, spousta vývojářů přestala řešit, proč jejich program padá, protože to lze triviálně restartovat.
Ale mě už je to jedno. Přecházím (no, vlastně je hotovo) na FreeBSD. Jednak mě k tomu konečně dokopal kámoš, taky je to trivka (pro linux admina je to prostě jen jiná distribuce) a jedna z věcí, která mě k tomu také dokopala je případ, který se mi stal před několika měsíci. Hledal jsem program na něco (binární diff) našel jsem bsdiff. No a v manu (resp. na webu k tomu má papír) se rozepisoval v O notaci o složitosti a dokonce velmi přesně o paměťové náročnosti. Potom jsem si vzpomněl, že takto nějak jsem začínal s linuxem. V man stránkách programů (třeba souborové db) byl vzorec na byte přesně, kolik daná data budou zabírat apod. Tohle už tam dneska není. A od lidí skákajících do stropu z restart on failure se toho ani nedočkáme.
Nějaký zabugovaný program si po sobě neuklízí procesy. Normální by bylo opravit ten program. Ne, místo toho LP napadne, že by bylo skvělé zavést střílení procesů při odhlášení. Jenže toto "řešení" něco rozbije, tak je nutné tlačit na autory toho něčeho. Takže tlak na opravu toho původního zabugovaného programu slábne.
Původní chyba nebyl zabugovaný program, ale problém s tím, jak funguje grafické sezení. To nemá řídicí terminál, takže když se ukončí D-Bus, tak nikdo nemá jak procesům říct, že mají skončit. Dosud se to „řešilo“ tak, že se D-Bus nespouštěl v PAM session, což je ale hack, který ne úplně dobře funguje, protože programy poběží i po ukončení PAM session, což například uzavře ecryptfs, odpojí NFS a DAV automounty, zabije SSH agenta, odhlásí z domény či odebere oprávnění k některým zařízením. Anebo taky programy třeba nikdy neskončí. Což může snadno vést (a taky občas vede) ke ztrátám dat a velmi těžko odladitelným problémům.
tmux je v tomhle také rozbitý, protože se snaží přežít konec PAM session, opět s možnými následky výše. Všichni to ale dosud brali jako „samozřejmost“ a vymýšlely se na to workaroundy, aby to tak nějak, občas více, občas méně dobře fungovalo. Systemd pouze změnil to, že když PAM předpokládá, že ukončená session nezanechá běžící programy, tak to začal vynucovat. Vytkl bych to, jak radili, že by to tmux měl řešit, ale samotný problém je tu už poměrně dlouho a vyřešit by se měl.
Čím dřív se odhalí vadné programy, tím lépe, alespoň vím, co nepožívat.
A proto systemd udělalo, co udělalo ;-)
A došlo na moje slova, spousta vývojářů přestala řešit, proč jejich program padá, protože to lze triviálně restartovat.
Kteří vývojáři? Tohle dělá Apache přinejmenším od verze 2.0 a nevšiml jsem si, že by pády Apache nikdo neřešil.
Původní chyba nebyl zabugovaný program, ale problém s tím, jak funguje grafické sezení.
Takže nějaký program forknul nějaké potomky a je neschopný je ukončit? Nebo jak ještě vznikají procesy?
Tohle dělá Apache přinejmenším od verze 2.0 a nevšiml jsem si, že by pády Apache nikdo neřešil.
Co tím konkrétně myslíš? Workery? Ty se řídí konfigurací. Že se by se někdy ukončil root proces apache jsem si nikdy nevšiml (a vím to, protože mám na stovkách webserverů screen po dlouhé měsíce / roky a vidím tam pid apache v historii. Jinak to, že workeři mají nastavenou životnost (k vůli leakujícímu php) se mi samozřejmě také nelíbí.
Takže nějaký program forknul nějaké potomky a je neschopný je ukončit? Nebo jak ještě vznikají procesy?
Pokud nějaký z těch potomků forkne další potomky a skončí (což dělá třeba inicializační skript v KDE), tak ti potomci se přesunou pod init (PID 1) a původní proces se o nich nedozví.
Co tím konkrétně myslíš? Workery? Ty se řídí konfigurací. Že se by se někdy ukončil root proces apache jsem si nikdy nevšiml (a vím to, protože mám na stovkách webserverů screen po dlouhé měsíce / roky a vidím tam pid apache v historii. Jinak to, že workeři mají nastavenou životnost (k vůli leakujícímu php) se mi samozřejmě také nelíbí.
Přesně tak, myslím workery. Workeři se automaticky ukončují po nějaké době, ale taky můžou spadnou a root process je restartuje (chová se stejně jako systemd s Restart=always). Root proces padá výjimečně, ty padající chyby jsou nejčastěji v modulech zpracovávajících požadavky.
(což dělá třeba inicializační skript v KDE)
A nešlo by jej opravit?
Workeři se automaticky ukončují po nějaké době, ale taky můžou spadnou a root process je restartuje
No jasně, což je dané sračkami, co se na dnešním webu používají. (Jak jsem psal, nelíbí se mi to.) Svět webu je specifický, pro jistotu si ani nevybral well formed xml a místo toho prohlížeče raději odhadují, co přesně autor tím zkripleným html myslel. Toto bych spíš uváděl jako odstrašující případ, kam to vede, než jako "apache to dělá taky".
A nešlo by jej opravit?
Co by měl dělat? To, že se potomci přesouvají pod init, je úmyslná vlastnost Unixu. Ten skript může tak akorát zůstat viset, ale pořád by šlo jen o workaround, může z nějakého důvodu skončit ( killall sh, OOM, spadne, …) a problém je tu zpět. Navíc se to netýká jen toho skriptu, ale jakéhokoliv procesu, který spustí jiný a potom skončí, třeba správce souborů může spustit přehrávač videa a pak být uživatelem ukončen, a najednou přehrávač videa není v procesové hierarchii toho skriptu.
Toto bych spíš uváděl jako odstrašující případ, kam to vede, než jako "apache to dělá taky".
Moje argumentace byla, že to, že Apache restartuje padající workery, nemá za následek, že by byli workeři padající víc než jiné služby, protože by si autoři řekli, že ty pády nebudou řešit.
Co by měl dělat?
Nevím co by měl dělat, jsem admin, ne programátor. Když se podívám na strom procesů, tak je na pid 1 navázáné pouze to, co tam navázané být má (služby spouštěné při bootu). To znamená, že evidentně jde zařídit, aby proces měl pod kontrolou své potomky nebo aby o žádného potomka nepřišel. (Ano, je to takový důkaz nedůkaz realitou, ale i tak.)
Moje argumentace byla, že to, že Apache restartuje padající workery, nemá za následek, že by byli workeři padající víc než jiné služby, protože by si autoři řekli, že ty pády nebudou řešit.
No to je možné, asi jsou vývojáři apache více disciplinovaní, než prostě někdo z ulice. Viděl jsem mnoho příkladů, kdy vývojář používá restart jako na běžícím pásu.
To je totéž jako docker. Spousta lidí byla natěšená, jak díky dockeru nemusí řešit verze ničeho a prostě si tam dá co je jim libo - bez ohledu na bezpečnostní updaty). Ostatně admini jistě znají Java aplikace, které si s sebou tahají konkrétní verzi jre5.
Když se podívám na strom procesů, tak je na pid 1 navázáné pouze to, co tam navázané být má (služby spouštěné při bootu). To znamená, že evidentně jde zařídit, aby proces měl pod kontrolou své potomky nebo aby o žádného potomka nepřišel. (Ano, je to takový důkaz nedůkaz realitou, ale i tak.)
Ve FreeBSD je na to API procctl. Linux má pro podobný případ cgroups (které tedy neudržují strom, ale skupiny procesů). Což je právě to, co používá systemd pro správu sezení a co tmux neumí používat.
S tim PID1 je to docela ozehave...staci se podivat na kombinaci skriptu a cronu:
#ps -ef | grep 250
root 25011 928 0 09:57 ? 00:00:00 /usr/sbin/CRON -f
user 25012 25011 0 09:57 ? 00:00:00 /bin/sh -c /tmp/test.sh
user 25013 25012 0 09:57 ? 00:00:00 /bin/sh /tmp/test.sh
user 25014 25013 0 09:57 ? 00:00:00 /usr/bin/tail -f /var/log/syslog
#kill 25012
#ps -ef | grep 250
user 25013 1 0 09:57 ? 00:00:00 /bin/sh /tmp/test.sh
user 25014 25013 0 09:57 ? 00:00:00 /usr/bin/tail -f /var/log/syslog
Killnout 25011 se neda, takze dalsi ze stromu se da killnout 25012. Vysledkem jsou procesy pod PID1 jako rodic.
A vtipne je taky toto:
#ps -ef | grep 251
root 25138 928 0 10:07 ? 00:00:00 /usr/sbin/CRON -f
user 25139 25138 0 10:07 ? 00:00:00 /bin/sh -c /tmp/test.sh
user 25140 25139 0 10:07 ? 00:00:00 /bin/sh /tmp/test.sh
user 25141 25140 0 10:07 ? 00:00:00 /usr/bin/tail -f /var/log/syslog
#kill 25140
#ps -ef | grep 251
user 25141 1 0 10:07 ? 00:00:00 /usr/bin/tail -f /var/log/syslog
A tentokrat se toho killnulo vic, ale zustal posledni potomek :D Proste problem s tim, co zustane po killu, kdy nejde killnout rodic a nekillne se posledni potomek.
#cat test.sh
#!/bin/sh
/usr/bin/tail -f /var/log/syslog
Teď mluvíte o stavu se systemd? Jestli ano tak to se snaží systemd řešit svými timery a cron je legacy řešení, které je z pohledu systemd rozbité stejně jako před systemd.
Na druhou stranu já toto nepovažuji za bug, ale za dobře popsanou feature - tak se linux vždy choval, toto chování převzal od jiných unixů, a je na programátorovi, či administrátorovi aby si potomky ohlídal...
... Zrovna "tail -f" v tomto případě ničemu nevadí. Umře sám, hned jak se pokusí zapsat další novou řádku z /var/log/syslog do stdout. (Protože je ta pajpa z druhé strany už zavřená a on dostane SIGPIPE). Pokud to není ten případ, je potřeba opravit test.sh, aby se o své potomky staral rozumějším způsobem.
Jako admin s takovým chováním nemám problém, naopak se lépe dozvím, že bylo potřeba killnout test.sh bez ohledu na jeho potomky, což byla nepochybně výjmečná situace, a je potřeba odstranit její příčiny. Jako adminovi mi nedává žádný smysl řešit NÁSLEDKY výjmečné situace AUTOMATICKY. To většinou vede jen ke skrytí opravdových problémů.
Co ma delat jineho, kdyz nejlepsi argumenty jsou ty vymyslene?!
"Why Debian should default to systemd
Fedora, OpenSuSE, Arch and Mageia have already made the choice to use systemd, and it is getting excellent upstream support for a growing number of packages."
https://wiki.debian.org/Debate/initsystem/systemd
Tak hlavne nas nepodezirej, ze vam systemd nejak zavidime a tak vam ho neprejeme. Naopak, dejte si i za nas, aspon dvojitou porci.
Jiz jsi si mohl vsimnout, ze nase hlavni vyhrada je naopak v tom, ze vy nam systemd nutite. Az bude systemd zcela volitelna komponenta a ne neco, co se nasere vsude, vynuti zavislosti jinych soucasti na sobe samem a rozbije kompatibilitu s kde cim, nerekneme proti systemd ani popel, akorat se vam budeme smat a budeme si na vas ukazovat prstem. A mezitim si pockame, jestli se za deset let ze systemd nevyklube neco pouziteleho nebo jestli z nej nerupne nekomu v bedne tak, ze radsi napise neco rozumneho.
Jak se systemd sere všude? Jestli jsem si dobře všiml, tak změnu výchozího init systému pořád ještě rozhodují konkrétní distribuce a závislosti vývojáři konkrétních programů a Poettering rozhoduje jen o svých programech. Tak zkus přestat vnucovat ostatním, že musí dělat to, co chceš zrovna ty.
Posledni systemd perla:
systemd-journald[18722]: File /var/log/journal/04a63c443e830a2cb9e4ef0046fc16aa/system.journal corrupted or uncleanly shut down, renaming and replacing.
systemd-coredump[21124]: Detected coredump of the journal daemon itself, diverted to /var/lib/systemd/coredump/core.systemd-journal.0....xz.