Portál AbcLinuxu, 11. května 2024 18:04


Dotaz: Systemd a vypnutí služby

10.3.2015 00:36 mhepp | skóre: 22
Systemd a vypnutí služby
Přečteno: 1694×
Odpovědět | Admin
Zdravím,

mám tu malý problém... Tu a tam potřebuji vypnout NetworkManager tak, aby zůstal vypnutý. Myslel jsem si, že klasické

systemctl stop NetworkManager

bude postačující. Jaké je mé zděšení, když po chvíli celkem pravidelně zjistím, že NM zase běží. systemctl stop NetworkManager sice NM zastaví, ale po chvíli jej zase spustí. Stop v tomto případě neznamená stop, ale spíš pazu.

Prosím tedy místní systemd guru o radu, jak v systemd vypnout službu tak, aby se nezapnula, dokud neřeknu nebo nerebootuji. Jako berlička mi zatím slouží systemctl disable NM, systemctl stop NM. Stop musím poslat několikrát, potom mám jistotu, že znovu nenastartuje. Každopádně to považuji za chybu, nebo nerozumím tom, jak stop funguje...
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.3.2015 01:17 MadCatX
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Odpovědět | | Sbalit | Link | Blokovat | Admin
Systemd umí NM znovu spustit, pokud na to přijde požadavek přes D-Bus.
systemctl mask NetworkManager.service
odstřelí službu úplně, takže ji nelze spustit ani ručně, dokud se neodmaskuje
systemctl disable NetworkManager.service
způsobí, že službu lze spustit jen ručně.

Pokud chcete zabránit tomu, aby šel NM spustit "on demand" přes D-Bus, můžete v /usr/lib/systemd/system/NetworkManager.service zakomentovat tento řádek:
Alias=dbus-org.freedesktop.NetworkManager.service
10.3.2015 13:17 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Ahoj,

díky za odpověď. Systemctl disable jsem bral jako berličku -- prostě zakáže v daném runlevelu službu. Jestli se dobře koukám na to, co dělá mask, tak to přebije service soubor služby, který je jinde než v /etc/systed/system/ linkem na /dev/null.

D-Bus jsem podezříval.

V případě NM to asi bude funkční, ale nefunguje to obecně. Například na vlastní vytvořenou servisu uloženou /etc/systemd/system/.

Komentovat řádek s aliasem na DBUS asi nebudu, protože obvykle mi to vyhovuje.
10.3.2015 13:55 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Ono je skôr orázkou načo vypínať NM. Ja používam netctl, a vyhovuje mi.
10.3.2015 14:27 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Třeba proto, aby mi nikdo nekecal do síťových připojení ve specifických případech.

Navíc, netctl je sice možná hezká věc, ale není k dispozici v mé distribuci a nemá podporu VPN.
pavlix avatar 10.3.2015 17:58 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Taky se dá nechat běžet démon a vypnout jenom networking přes nmcli, ale do jisté míry se to od shození služby liší.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
10.3.2015 22:38 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Predpokladám, že názov tej distribúcie znie: prísne tajné. Na jej verziu sa už radšej nepýtam.
10.3.2015 23:45 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Centos 7, Debian Sid...

netctl je totiž záležitost Archu.
10.3.2015 23:53 Sten
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Do všech nebo jen do některých? NetworkManageru se dá říct v NetworkManager.conf, že některá rozhraní má nechat na pokoji:
[keyfile]
unmanaged-devices=interface-name:tun0
V Debianu je pro ovládání NetworkManageru nmcli a VPN podporuje po doinstalování příslušných balíčků (např. network-manager-openvpn).
pavlix avatar 11.3.2015 10:45 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Na tom popravě moc nezáleží, pokud ho potřebuješ za běhu sundat, aby ti dočasně do ničeho nekecal. Jinak vyčlenění nespravovaných rozhraní je fajn věc, škoda, že to nejde změnit i za běhu.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
11.3.2015 12:58 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Jak píše pavlix. Občas potřebuji síť nastavit ručně tak, aby mi do toho opravdu nic nekecalo.

Nmcli znám a používám, stejně tak openvpn přes NM. Zároveň mám některá rozhraní nastavena jako nespravovaná. Reakce byla na netctl, které je záležitost Archu a jinde není.

Nepátrejte po důvodech proč potřebuji vypnout NM nebo jak to ojebat, abych ho vypínat nemusel. Jiné řešení než vypnutí NM v této situaci nepomůže. V Linuxu nejsem žádný začátečník, takže vím co a proč chci. Jen systemd je pro mne Terra inkognita, občas spíš Terra inkontinenta.
pavlix avatar 10.3.2015 14:31 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Skutečně je to berlička a ještě ne moc dobrá. Já za správný workaround považuju systemctl --runtime mask před zastavením služby. Nemá to nepříjemné vedlejší efekty a funguje to bezvadně a univerználně.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
pavlix avatar 10.3.2015 14:34 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Odpovědět | | Sbalit | Link | Blokovat | Admin
Každopádně to považuji za chybu, nebo nerozumím tom, jak stop funguje...
Obojí platí. V systemd už neexistuje přímý vztah mezi službou, tak jak ji vidí administrátor, a službou, tak jako je dostupná v uživatelském rozhraní nebo ve filesystému. Na efektivní práci s distribucemi se systemd musí člověk přemýšlet na nižší úrovni abstrakce a znát věci více do detailu.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
10.3.2015 15:56
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
A jak to mám dělat, když jsem BFU? Dosud to bylo relativně jednoduché. Teď se systemd budu asi muset jít napřed na školení, abych už nebyl BFU.
10.3.2015 17:45 j
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Presun se nekam, kde systemd neni. Nebudes pak muset resit takovy "ficury", jako ze cups startuje az kdyz chces tisknout, ale abys mel vubec na co tisknout, je treba nastartovat cups.

=> cas na instalaci widli. Tam dostanes zhruba totez jako systemd, jen to uz ma pomerne rozsahlou bazi toho "jak co wochcat aby to delalo co chci".
10.3.2015 19:30 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Tohle není ani tak záležitost systemd jako D-Busu. Víte, že například běžný uživatel vám může vypnout server, protože výchozí nastavení consolekitu je takové? Bohužel ve jménu boje za lepší desktop se nastavení rozlezlo všude po souborovém systému a pokud člověk nemá nějaký auditovací nástroj, tam nemá šanci si v tom udržet přehled. (Že takový nástroj stejně nechytne všechno, protože pravidla polkitu se píší v turingovsky úplném jazyce, je poslední hřebík do rakve Linuxu jako jednoduchého operačního systému.)
pavlix avatar 10.3.2015 19:40 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Tohle není ani tak záležitost systemd jako D-Busu.
V případě NetworkManageru je to především věc systemd i když technicky vzato to dělá dbus, protože nebýt systemd, tak by se tam dbusová aktivace nepoužívala vůbec.
Že takový nástroj stejně nechytne všechno, protože pravidla polkitu se píší v turingovsky úplném jazyce, je poslední hřebík do rakve Linuxu jako jednoduchého operačního systému.
Pořád ještě můžeš nad Linuxem a dalšími open source nástroji relativně jednoduchý operační systém postavit, ale holt to není o tom stáhnout si mainstreamovou distribuci a mít hotovo.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
10.3.2015 19:51
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Běžný uživatel možná, ale nesmí to být BFU. Když vidím pravidla polkitu, vstávají mi vlasy hrůzou na hlavě. V Linuxu se už nevyznají ani linuxáci. Patrně budu radši BFU na Windowsech, aspoň si pokecám s jinými BFU o tom, jak tomu společně nerozumíme.
10.3.2015 19:46 nobody
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
systemctl disable NetworkManager.service

způsobí, že službu lze spustit jen ručně.
Nikoliv, neplatí to pro služby Online-accounts ani Avahi, stále se spouští i po administrátorském příkazu. Takže ty příkazy jsou buď nefunkční nebo omezené. proč tam vůbec jsou ... Vím, že způsob komentování, mazání nebo přejmenování v systémovém souboru není doporučovaný, což asi stále mnozí buď neví, nebo nechtějí vědět, nebo nečtou hlavičky v tom souboru. Protože cesta k změně je vytvoření změněného obsahu v uživatelském profilu. Nástroje v gui jsou pro srandu králikům a nefunkčnost ani terminálového příkazu k tomu určeného je už vrchol. Nicméně mě už nebaví, řešit linuxové nedodělky a ignoranstství některých vývojářů a koupím raději Windows 10, kde nebudu muset řešit už od instalace nedodělky a aktualizace dalších nedodělků, včetně problémového správce sítě, protože Linux bez síťě je čtvrteční.
10.3.2015 21:10 nobody
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
tohle je nejakej jinej nobody, ja windows10 rozhodne kupovat nebudu :-D
10.3.2015 21:17 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Jestli tomu dobře rozumím, tak disable je něco jako smazání linku z /etc/rcX.d/. Pokud chceš opravdu zakázat službu, tak můžeš dát mask, které je ekvivalent nahrazení souboru v /etc/init.d/ prázdným souborem.

Výsledek celé diskuze je tedy takový, že systemd nemá prostředek, jak obecně nějakou službu zastavit a mít jistotu, že nenastartuje. Mask je funkční jen v připadě, že daná služba NENÍ v adresáři /etc/systemd/system/, stop je funkční jen v případě, že si službu nic nevyžádá, disable není způsob, jak se to řeší. A editace souboru v /usr/lib/ je jen cesta do pekel.

Kde je tedy reálný přínos systemd? Rychlý start je v současnosti nezajímavý -- co se vypíná, to se uspává. Výkonu je taky na rozdávání, takže služba může běžet od startu a ne až na požádání a ztrácím kontrolu nad službami systému. Prosím jen fundované odpovědi, nechci flame.

Pro ty, co by chtěli argumentovat pokrokem: ano, pokrok je potřeba. Co vyhovovalo dřív, nemusí být dobré dnes. Podívejte se například na X server. Zjistilo se, že současný model, který byl výborný dříe je již zastaralý a výkonově nedostačuje současným nárokům. Dobře, vymyslíme něco nového. A vznikl Wayland. Je tu, ale nikdo mne nenutí ho používat. Mohu si vybrat, jestli ho chci použít, nebo ne. Celý ekosystém se na něj postupně připravuje a až uzraje doba, tak přechod nebude bolest. Pak tu máme systemd, který někdo prokřičel do distribucí a problémy spíše přináší, než řeší. Doba pro něj ještě neuzrála, protože služby nejsou připraveny a celý ekosystém s ním spíše skřípe. Systemd dle mého měl zůstat ještě pár let jako ta druhá možnost. Tím ale nechci říct, že všechno na systemd je špatné. Na desktopu to jednou bude výborná záležitost, na serveru význam nevidím. Ten je spíše statický a dlouhoběžící, takže služby puštěné na vyžádání běží pořád, rychlý start je mi k ničemu, když stejně desetkrát tolik strávím čekáním na inicializaci řadiče a dbus, dhcp klient, suspend a spol. kvůli Apache není potřeba...
pavlix avatar 11.3.2015 10:54 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Jestli tomu dobře rozumím, tak disable je něco jako smazání linku z /etc/rcX.d/. Pokud chceš opravdu zakázat službu, tak můžeš dát mask, které je ekvivalent nahrazení souboru v /etc/init.d/ prázdným souborem.
Přesně tak, a důležitá věc je i to, že disable je negativní (opak k enable), zatímci mask je pozitivní. Po dobu runtime umí systemd přerazit konfiguraci jen pozitivní změnou, tedy s --runtime funguje jenom mask a nikoli disable.
Výsledek celé diskuze je tedy takový, že systemd nemá prostředek, jak obecně nějakou službu zastavit a mít jistotu, že nenastartuje.
Nemá takový prostředek pro dbusové služby, ale s kdbusem se to má změnit. Nicméně i tak budeš muset zastavovat dvě různé jednotky, protože ovládání systemd se odvíjí od jeho implementačních detailů a nikoli od potřeb administrátora.
Kde je tedy reálný přínos systemd? Rychlý start je v současnosti nezajímavý -- co se vypíná, to se uspává. Výkonu je taky na rozdávání, takže služba může běžet od startu a ne až na požádání a ztrácím kontrolu nad službami systému. Prosím jen fundované odpovědi, nechci flame.
Vždyť je to typický flamebait, systemd linuxáky hodně rozděluje, nemůžeš si vybírat, jaké reakce dostaneš a jak budou fundované.
A vznikl Wayland. Je tu, ale nikdo mne nenutí ho používat.
Zatím tě nikdo nenutí ho používat, přesněji řečeno zatím někoho ještě baví starat se o Xorg a udržovat s ním aplikace kompatibilní.
Pak tu máme systemd, který někdo prokřičel do distribucí
Jinými slovy ho distribuce přijaly, ať už z jakýchkoli důvodů. Nicméně tenhle způsob vyjádření už vůbec nevede k fundovaným reakcím, ale je to jen podtržení toho flamebait. Doporučuju se především zaměřit na ty, kteří měli možnost toto rozhodnout, a na jejich zdůvodnění.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
11.3.2015 13:15 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Ano, sopuhlasím, že moje reakce zavání začátkem flame. Nechci ho ale nijak vyvolávat a podporovat. Proto jsem zdůraznil ty fundované odpovědi.

Ač nejsem zastánce systemd, snažím se na to dívat s nadhledem a oprostit se od svých emocí.
Nicméně i tak budeš muset zastavovat dvě různé jednotky, protože ovládání systemd se odvíjí od jeho implementačních detailů a nikoli od potřeb administrátora.
... ale já jako administrátor potřebuji dosáhnout určitého cíle. K čemu je mi implementace, která k cíli nevede?
Jinými slovy ho distribuce přijaly, ať už z jakýchkoli důvodů. Nicméně tenhle způsob vyjádření už vůbec nevede k fundovaným reakcím, ale je to jen podtržení toho flamebait. Doporučuju se především zaměřit na ty, kteří měli možnost toto rozhodnout, a na jejich zdůvodnění.
To bylo jen srovnání s projektem, který má přinést podobnou revoluci do světa Linuxu. A souhlasím, nechal jsem se trochu unést.
pavlix avatar 11.3.2015 16:00 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
... ale já jako administrátor potřebuji dosáhnout určitého cíle. K čemu je mi implementace, která k cíli nevede?

To je hluboce filosofická otázka. :)
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
11.3.2015 16:30 gogol
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na RH systemoch je v .../network-scripts/ifcfg-xxx volba NM_CONTROLLED=NO, ktora odoberie kontrolu prislusneho iface z NM. Pouzivam takto wifi s vlastnymi skriptami hadam uz 11 rokov a zatial mi NM nechyba. Ak tam ta volba nieje, treba ju doplnit.
11.3.2015 16:34 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Jak jsem psal výše, většinou chci, aby se NM staral o síť. To mi vyhovuje.

Ale občas narazím na situaci, kdy je třeba NM vypnout. Žádné nastavení nekontrolovaných interfaců mi nepomůže. Třeba proto, že potřebuji nastavit ručně i interface, který je jinak spravován.

Navíc to pořád neřeší problém, který mám se systemd.
pavlix avatar 11.3.2015 16:42 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Reálný problém se systemd řeší jen ten (runtime) masking, na psychologický problém v poradně asi řešení nenajdeš.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
11.3.2015 17:27 mhepp
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Ale jo furt... Jak vypnout nm uz vim, je tu napsane a vicemene vyresene. To jo.

Reaguji na to, ze zakazovani interface ma byt reseni problemu jak vypnout nm. To, ze zakazu nm, aby pouzival interface mi nm opravdu nevypne.

Ale mas pravdu, se systemd mam problem. I ten psychicky.
11.3.2015 17:05 gogol
Rozbalit Rozbalit vše Re: Systemd a vypnutí služby
Mo ved to je ono. Aj mne sa stara NM o siet, ale v niektorych pripadoch nie.

Aky mas problem so systemd ? Prosim specifikuj presnejsie, najlepsie ked to spises do bodov podla zavaznosti.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.