abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 15:40 | Nová verze
The Document Foundation oznámila vydání verze 4.4 svobodného kancelářského balíku LibreOffice. Z novinek je v oznámení zdůrazněno vylepšené uživatelské rozhraní, lepší podpora OOXML a kvalita zdrojových kódů (Coverity Scan). Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání.
Ladislav Hagara | Komentářů: 5
dnes 10:09 | Nová verze
Laboratoře CZ.NIC vydaly další verzi (4.1.0) desktopové aplikace Datovka 4. Tato verze zahrnuje kromě oprav chyb i některé novinky a vylepšení. Mezi ně patří dokonalejší mechanizmus odesílání zpráv více příjemcům, lepší způsob označovaní nově přijatých zpráv, rychlejší stahování zpráv a ukládání do databáze či vylepšená nabídka kontaktů. Z novinek stojí za zmínku možnost importovat ZFO soubory zpět do lokální databáze, podpora … více »
Vilem Sladek | Komentářů: 17
27.1. 23:23 | Bezpečnostní upozornění
V knihovně glibc byla nalezena kritická zranitelnost CVE-2015-0235, jež dostala jméno GHOST. Jedná se o přetečení zásobníku ve funkci __nss_hostname_digits_dots(). Útočník může v nejhorším případě vzdáleně spustit libovolný kód. [CSIRT.CZ]
Ladislav Hagara | Komentářů: 29
27.1. 21:29 | Zajímavý software
Jon von Tetzchner, jenž v roce 1994 založil společnost Opera, do roku 2010 byl jejím CEO a v roce 2011 ji zcela opustil, představil se svým týmem nový webový prohlížeč Vivaldi. Technologické demo je k dispozici také pro Linux. Diskuse na Vivaldi.net.
Ladislav Hagara | Komentářů: 75
27.1. 21:28 | Nová verze
Bylo oznámeno vydání verze 5.2 prostředí KDE Plasma. Nejnovější Plasma přináší nové komponenty (BlueDevil, KSSHAskPass, Muon, ...), funkce a samozřejmě řeší řadu chyb obsažených ve verzi 5.1 (zprávička). Podrobnosti v úplném seznamu změn. Videoukázka prostředí na YouTube.
Ladislav Hagara | Komentářů: 3
27.1. 21:28 | Pozvánky
Až do pátku 30. ledna můžete hlasovat o programu konference InstallFest 2015. Témata jsou různorodá, od embedded po servery, a na výběr je též z několika workshopů. Program konference je ve vašich rukou.
Jendа | Komentářů: 0
27.1. 01:01 | Nasazení Linuxu
LinuxGizmos.com představuje výškově nastavitelný pracovní stůl Stir Kinetic Desk M1. Stůl poháněný Linuxem je dodáván s WiFi, Bluetooth a dotykovým displejem o velikosti 5 palců. Jedná se o novější a levnější model stolu od společnosti Stir. Cena modelu M1 je 2990 dolarů a lze si vybrat mezi bílým a černým provedením. Model F1 je k dispozici za 4190 dolarů. Představení vlastností stolu na YouTube.
Ladislav Hagara | Komentářů: 20
27.1. 01:00 | Pozvánky
Ve středu 28. ledna se od 18.00 v místnosti A318 v prostorách Fakulty informatiky Masarykovy univerzity v Brně bude konat pravidelné setkání Czech JBoss User Group. Tentokrát budou na programu hned dvě přednášky o aplikačním serveru WildFly. Stuart Douglas a Michael Musgrove napřed ukáží novinky v chystané nové verzi WildFly 9 a poté představí transakční subsystém Narayana. Podrobné informace naleznete na stránce akce.
Vojtěch Trefný | Komentářů: 0
26.1. 01:01 | Zajímavý software
Rich Geldreich, bývalý vývojář Valve, vydal první stabilní verzi 1.0 bezeztrátového kompresního algoritmu a knihovny LZHAM (GitHub). Komprese s LZHAM je srovnatelná s LZMA, dekomprese je ale 1,5 až 8 krát rychlejší. Rich Geldreich pracuje na LZHAM již více než 3 roky. Předchozí vývoj probíhal na Google Code. [Phoronix]
Ladislav Hagara | Komentářů: 55
25.1. 14:32 | Zajímavý software
Byl vydán Cool-Retro-Term ve verzi 1.0.0. Jedná se o emulátor terminálu, který napodobuje vzhled a chování starých CRT terminálů. Původně byl emulátor vyvíjen pod názvem Cool-Old-Term. V září loňského roku byl přejmenován na Cool-Retro-Term (CRT). Ukázka vlastností a nastavení na YouTube.
Ladislav Hagara | Komentářů: 25
Disketu jsem naposledy použil během
 (41%)
 (3%)
 (12%)
 (41%)
 (3%)
Celkem 2034 hlasů
 Komentářů: 58, poslední 25.1. 18:11
    Rozcestník
    Reklama
    Autoškola testy online Levný benzín

    Systemd – .service jednotky, náhrada init skriptů

    21. 7. 2011 | Michal Vyskočil | Systém | 6345×

    V dnešním díle se zaměříme na .service jednotky, což jsou jednotky spouštějící démony, čili přímá náhrada za init skripty. Systemd je nejnovější hvězda v tak poklidné a konzervativní oblasti, jako jsou init systémy. V této sérii článků si probereme jeho vlastnosti.

    Obsah

    Jednotka .service

    Jednotka .service je jednotka sloužící ke spouštění, ukončování a kontrole bežících procesů. Tolik oficiální dokumentace.

    Každý typ jednotky má svoji stejnojmennou sekci, takže volby tohoto typu jsou v sekci [Service]. Ve výchozím stavu má každá jednotka implicitní závislosti After=basic.target a Requires=basic.target a Conflicts=shutdown.target a Before=shutdown.target. Těm, kteří se prokousali minulými díly, není třeba vysvětlovat více, pro ostatní – vše podstatné, včetně toho, jak tyto implicitní závislosti potlačit naleznete tam.

    Mimo nativních jednotek systemd podporuje rovněž klasické skripty v /etc/init.d, dokonce včetně LSB hlaviček. Právě tato vlastnost usnadňuje přechod z klasického sysvinit rozložení na systemd.

    Píšeme .service jednotky

    Přepis init skriptu na .service jednotku je poměrně snadný a přímočarý úkol. A výsledek je čitelnější než init skript, který je obvykle plný výplňového kódu. Ten byl přesunut do samotného systemd.

    Toto je příklad /etc/init.d/bluetoothd (známým občas pod jménem bluez). Pomineme skutečnost, že přinejmenším Fedora a openSUSE bluetooth démona spouštějí prostřednictvím systému udev.

    [Unit]
    Description=Bluetooth Daemon
    Names=bluez.service
    After=syslog.target
    
    [Service]
    Type=forking
    ExecStart=/usr/sbin/bluetoothd
    PIDFile=/var/run/bluetooth.pid
    
    [Install]
    Alias=bluez.service
    WantedBy=bluetooth.target
    

    Z několika desítek řádků init skriptu pro bluetooth démona jsme se dostali na 11 řádků .service jednotky. Navíc rozdělení jednotlivých voleb do sekcí dále zjednodušuje orientaci – potřebujeme se podívat na to, jakým způsobem jednotka startuje? Prostě se podíváme pouze na sekci [Service] a zbytek ignorujeme.

    Volba Description= je popis jednotky. Sekce Names= určuje alternativní názvy pro jednotku a zaručuje, že příkaz systemclt bluez.service bude rovněž fungovat. Volba After=syslog.target zajišťuje, že bude tato jednotka spuštěna až po spuštění systémového logu. Ovšem protože volba After= znamená pouze pořadí a neříká nic o závislostech, neznamená to, že spuštění této služby spustí i syslog. Volba After= znamená, že pokud bude existovat požadavek na spuštění syslog.target a bluetooth.service, bude prvně jmenovaná spuštěna dříve.

    Sekce označená jako [Install] říká, že bluez.service je alternativní název pro instalaci této služby. Obvykle je dobré mít obsah [Unit]/Names= a [Install]/Alias= stejný, protože by rozdíly mezi instalačními a názvy za běhu mohly být matoucí. Volba WantedBy= říká, že tato jednotka bude vyžadována jednotkou bluetooth.target, čili při instalaci bude vytvořen symbolický odkaz v bluetooth.target.wants.

    Prostřední sekcí [Service] se bude zabývat následující text.

    Typy služeb

    link

    Nejdůležitějším parametrem je Type=, čili typ služby, kterou hodláme spouštět. Systemd rozeznává 5 rozličných typů – simple, forking, oneshot, dbus a notify.

    Výchozí hodnota simple říká, že proces definovaný v ExecStart= bude hlavním procesem služby. V tomto režimu musí být komunikační kanály nastaveny před vlastním spuštěním procesu. Tato volba je vlastní například /sbin/sulogin v emergency.target a systemd spouští závislé jednotky okamžitě.

    Typ oneshot je podobný typu simple s tím rozdílem, že systemd spustí závislou jednotku až poté, co daný proces doběhne. Toto je klasický typ různých služeb běžících při startu a ukončování systému jako například fsck@.service, clock.service (odstraněna v systemd-28) nebo quotaon.service. Posledně jmenovaná má navíc nastaven parametr RemainAfterExit=yes, což znamená, že služba quotaon.service, jinak jednorázové spuštění příkazu /sbin/quotaon, bude i po ukončení běhu procesu považována za aktivní. Jinak by start každé závislé jednotky na quotaon.service vyvolal spuštění tohoto příkazu.

    Dalším typem je dbus, což opět obdoba typu simple, ovšem zde se očekává, že démon nakonec zabere svoje jméno na D-BUS sběrnici tak, jak určuje parametr BusName=. Systemd spustí závislé jednotky až poté, co dojde k onomu zabrání jména. Tyto jednotky získávají implicitní závislost na dbus.target.

    Nastavení forking je pro tradiční unixové démony, které volají fork(2). Rodičovský proces skončí okamžikem, kdy se dokončí démonizace a nastavení komunikačních kanálů. Démonizovaný proces potom běží dál samostatně. Pro forking démony je vhodné uvést umístění souboru s číslem procesu parametrem PIDFile=. Další procesy jsou nastartovány až poté, so skončí rodičovský proces. Typickým představitelem tohoto typu je acpid.

    Typ notify očekává aktivní notifikaci stavu spuštěného démona, k čemuž slouží volání sd_notify(3) (o sd_funkcích se dozvíme v následujících částech), nebo podobné volání. V tomto případě systemd spouští závislé služby až potom, co byl démonem upozorněn, že dokončil svůj start. Tato volba je určena pro démony, které z nějakých důvodů nemohou svůj start notifikovat jinak, třeba připojením se na sběrnici D-BUS. Představitelem je udev.service.

    NotifyAccess= pak specifikuje přístup k notifikačnímu socketu, kterým proces komunikuje se systemd (viz sd_notify(3)). Možnosti jsou none – žádné zprávy nejsou akceptovány, main – pouze ty od hlavního procesu nebo all – všechny zprávy dané kontrolní skupiny jsou akceptovány. Tato volba má smysl, pokud notifikaci provádíme příkazem /bin/systemd-notify.

    Lepší jednotka bluetooth.service

    Přepis jednotek jedna k jedné je sice snadný a možný, ale nikterak nevyužívá schopností systemd, mezi něž patří především spouštění na požádání. Démon bluetoothd používá ke komunikaci sběrnici D-BUS, čili v tomto případě je lepší použít typ dbus.

    Relevantní část se změní na 

    [Service]
    Type=dbus
    BusName=org.bluez
    ExecStart=/usr/sbin/bluetoothd -n
    

    čili démon bluetoothd bude spuštěn v případě, že démon dbus obdrží požadavek na nějakou službu z org.bluez. Připomínám, že dbus démon byl upraven tak, aby dokázal požadavky na spuštění služeb přesměrovat na systemd. To znamená, že služby aktivované přes D-BUS jsou spuštěné stejným způsobem a mají k dispozici stejné nastavení, jako ty ostatní.

    Spouštění služeb

    link

    ExecStart= určuje příkazový řádek, který má být vykonán pro start této jednotky, a je povinný. První část argumentu musí být absolutní cesta k příkazu (sbohem špatně nastavené PATH=), následovaná argumenty pro tento příkaz. Výše uvedená clock.serviceExecStart=/sbin/hwclock --systz. Respektive měla, protože od verze systemd 28 byla tato jednotka zrušena.

    Tato volba nesmí být uvedena více než jednou – s výjimkou typu oneshot. V tomto případě jsou příkazy spouštěny postupně v pořadí, ve kterém jsou uvedeny v souboru.

    V případě, že absolutní cesta začíná na @, bude první část vynechána ze seznamu argumentů daného programu, což znamená, že hodnota argv[0], která označuje název programu, bude rovna druhému argumentu. Takže program spuštěný s ExecStart=@/usr/bin/foo bar bude mít v argv hodnotu bar.

    Pokud je prvním prefixem znak -, je ignorován návratový kód služby, takže je spuštění považováno vždy za úspěšné. Příkladem je ExecPrefix=-/bin/sulogin z emerency.target. Pokud je potřeba oba znaky zkombinovat, potom musí být ve tvaru -@.

    S výjimkou typu forking je vždy proces nastartovaný příkazem za ExecStart považován za hlavní proces démona. V praxi to znamená, pokud spouštíme službu pomocí nějakého shellového wrapperu, musíme démona spouštět pomocí exec. V případě typu forking se systemd dívá na pid soubor.

    Podporováno je i nahrazování proměnných prostředí, takže ${FOO} bude nahrazenou hodnotou proměnné stejného jména. Stejně tak i $FOO může být uveden jako samostatné slovo na příkazové řádce a v tom případě je nahrazeno hodnotou rozdělenou bílými znaky. Ovšem jméno příkazu musí být stále absolutní cesta k binárnímu souboru.

    Ukončení služby

    link

    ExecStop= jsou příkazy spouštěné pro zastavení služby. Podporuje ${MAINPID} jako ExecReaload= a všechny ostatní vlastnosti uvedené výše. Narozdíl od sysvinit skriptů je tato volba čistě volitelná a případné zbývající procesy jsou ukončeny podle volby KillMode=.

    ExecStopPost= jsou příkazy spuštěné po ExecStop= – využití je mizivé, ovšem rescue.serviceExecPostStop=/bin/systemctl default.

    Stejně jako se rozeznává několik typů procesů pro spouštění, existuje i několik různých typů z hlediska vypínání. Ty určuje volba KillMode=, jejíž argumenty jsou control-group, process-group, process, nebo none.

    Argument control-group značí, že systemd po skončení příkazu ExecPost= ukončí všechny zbývající procesy patřící do stejné kontrolní skupiny (cgroup) jako hlavní proces. Volba process-group značí, že budou ukončeny procesy patřící do stejné skupiny procesů. Možnost process znamená, že se má ukončit pouze hlavní proces, a volba none potlačí jakékoli vypínání procesů, takže bude proveden pouze příkaz uvedený v ExecStop=.

    Schéma vypínání je následující: Nejprve je zaslán SIGTERM (lze předefinovat volbou KillSignal=). Pokud po době specifikované parametrem TimeoutSec= jsou procesy stále naživu, je jim zaslán SIGKILL. Výchozí hodnota je 60.

    Další možností je použít argument -s příkazu systemctl kill, takže

    # systemctl kill -s SIGKILL bluetoothd.service

    Pošle procesům SIGKILL. Dalším parametrem můžete omezit počet procesů, kterým se signál posílá, takže požadavek na znovunahrání konfigurace je

    # systemctl kill -s SIGHUP --kill-who=ḿain bluetoothd.service

    Ostatní volby typu Exec

    ExecStartPre= a ExecStartPost= jsou příkazy spouštěné před, případně po příkazu ExecStart=. Příkazy mohou být odděleny středníkem, nebo může být uvedeno více voleb po sobě, i když druhá forma může být nekompatibilní s nastroji očekávající XDG .desktop formát. Podporovány jsou všechny vlastnosti zmíněné u ExecStart=.

    Příkladem použití je rescue.service:

        ExecStartPre=-/bin/plymouth --hide-splash
        ExecStartPre=-/bin/echo 'Welcome to rescue mode. Use „systemctl default“ or
        ^D to activate default mode.'
        ExecStart=-/sbin/sulogin

    Volba ExecReload= určuje způsob, jímž se službě říká, aby znovu načetla konfiguraci. Jejím argumentem může být rovněž více příkazů jako u ExecStartPre/Post. Podporována je proměnná ${MAINPID}. ExecReload= pak obvykle vypadá jako /bin/kill -HUP ${MAINPID}, ale různé služby lze požádat různě. Například dbus.service vypadá takto:

    ExecStartPre=/bin/dbus-uuidgen --ensure
    ExecStartPre=-/bin/rm -f /var/run/dbus/pid
    ExecStart=/bin/dbus-daemon --system --address=systemd: --nofork \
    --systemd-activation
    ExecReload=/bin/dbus-send --print-reply --system --type=method_call \
    --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
    

    Restart

    link

    Restart= určuje, zda má být hlavní proces služby restartován, pokud skončí, nebo ne. Výchozí hodnotou je no, čili služba nebude restartována. Při on-success bude restartována pouze v případě, že skončila s návratovým kódem 0 a při always bude restartována vždy, bez ohledu na návratovou hodnotu. Protože je poslední možnost alternativou k respawn u klasického initu, není překvapením, že je tato volba přítomná u getty@.service.

    RestartSec= je interval mezi ukončením a opětovným spuštěním služby. Výchozí hodnota je 100ms. U getty@.service je nastavena na 0.

    Závěrem

    link

    Tento díl nakousl praktičtější část problematiky systemd, totiž .service jednotky. Dozvěděli jsme se, které typy démonů systemd nativně podporuje, jak spustit, zastavit, nebo požádat o znovunahrání konfigurace. Příští díl se bude věnovat kontrole prostředí, v němž bude proces spuštěn.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    herne the hunter avatar 21.7.2011 07:56 herne the hunter | skóre: 10 | tor lara
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    není tady:

    # systemctl kill -s SIGHUL --kill-who=ḿain bluetoothd.service

    náhodou překlep? čekal bych spíš SIGHUP…
    i am herne the hunter and you are a leaf driven by the wind.
    21.7.2011 09:02 Mst. Spider | skóre: 36 | blog: xMstSpider
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Asi novinka v systemd - das damonovi jointa a on se restartuje ;-)
    Salamek avatar 21.7.2011 09:49 Salamek | skóre: 20 | blog: salamovo
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    fur lepsi nez kdyby misto HUL bylo HAIL :-D
    Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
    AsciiWolf avatar 21.7.2011 12:57 AsciiWolf | skóre: 33 | blog: Blog
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    :-D
    Luboš Doležel (Doli) avatar 21.7.2011 12:43 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Opraveno.
    21.7.2011 19:34 marek
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    no uvidime, jak se to nakonec dopadne s hura akcemi ala systemd atd...

    zatim jsem, v ramci udrzeni si zdraveho rozumu, sysvinit, gnome 2 atd, poridil RedHat WS6 a u toho hodlam tvrdosijne zustat dalsich x let ! :)

    kam to vubec speje ? systemd, pulse-audio, unity, gnome 3 ...jedna bomba vedle druhe....tedy alespon pro nas stare unixove konzervy :(

    Kdyby to bylo aspon k necemu, ale prozatim postradam jakekoliv vyhody oproti sysvinit.

    21.7.2011 23:03 gorr
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    +1
    q66 avatar 22.7.2011 14:20 q66 | skóre: 30 | blog: Q's CZ devblog | Staines
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    jojo .. používám roky starý BSD init, OSS, Enlightenment a naprostá spokojenost.
    OctaForge developer - Enlightenment developer - Software Engineer @ Samsung Research UK
    pavlix avatar 21.7.2011 22:40 pavlix | skóre: 50 | blog: pavlix
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Zajímala by mě docela jedna věc. Celý nápad se socket activation se mi líbil, ale teďka na mě jaksi doléhá ta horší tvář celé věci.

    Na Fedoře 15 se mi často spouští NetworkManager, když nechci, dokonce když si výslovně řeknu, že ho nechci (neznám na to lepší způsob než service NetworkManager stop alias /etc/init.d/NetworkManager stop, které volá systemctl).

    Vtip je v tom, že je tak prakticky nemožné dělat něco se sítí, aniž by se mi do toho NM pletl. Jako uživatel mám NetworkManager celkem dost rád, jako síťař ho ale potřebuju vypínat, protože to bych se v něm upsal, kdybych musel při každém pokusu proklikávat až na formulář a v něm ručně vyplňovat IP adresy jako ve windows.

    Což o to, když potřebuju, jsem schopný vyhodit z NM konkrétní síťové rozhraní pomocí nmcli, ale i tak je to jiný způsob práce, navíc to nefunguje out-of-the box. Prostě nejde vypnout na linuxovém OS služba tak, aby se během vteřin až minut sama nezapla.

    No... bude ještě legrace :). Snad z toho vypadne něco rozumného.
    GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
    michich avatar 21.7.2011 23:14 michich | skóre: 50 | blog: ohrivane_parky
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Na Fedoře 15 se mi často spouští NetworkManager, když nechci, dokonce když si výslovně řeknu, že ho nechci (neznám na to lepší způsob než service NetworkManager stop alias /etc/init.d/NetworkManager stop, které volá systemctl).
    stop nezabrání následné aktivaci. Zkus disable. http://0pointer.de/blog/projects/three-levels-of-off
    pavlix avatar 22.7.2011 17:18 pavlix | skóre: 50 | blog: pavlix
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Hmmm. Vyzkouším. Ale k čemu je pak /etc/init.d/NetworkManager či service NetworkManager, když tuto možnost nenabízejí (alespoň podle helpu, který to vypíše bez argumentu)? Měl jsem za to, že klidně můžu dál používat initskripty jako dřív a jen se to na pozadí provede novým systémem.
    $ systemctl disable ntpd.service

    On traditional Fedora systems, this is roughly equivalent to the following command:

    $ chkconfig ntpd off
    To je úplně jiný význam disable než píšeš ty.

    GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
    michich avatar 22.7.2011 20:06 michich | skóre: 50 | blog: ohrivane_parky
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Ale k čemu je pak /etc/init.d/NetworkManager
    Ten je k ničemu, protože je překrytý nativním unitem, a správně by v tom balíčku už vůbec neměl být.
    Měl jsem za to, že klidně můžu dál používat initskripty jako dřív a jen se to na pozadí provede novým systémem.
    To ano. Ty provedeš stop a ta služba se skutečně v tu chvíli vypne. Jenže nějaká budoucí událost ji může zase zapnout. Konkrétně NetworkManager je možno aktivovat přes D-Bus.
    michich avatar 22.7.2011 20:15 michich | skóre: 50 | blog: ohrivane_parky
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    K tomu bych ještě dodal, že nejsi sám, koho překvapuje, že služba se po ručním stopu může zase nastartovat. Máme v Bugzille RFE, aby systemctl aspoň varoval v případě, že uživatel stopne službu, ale nechá aktivní naslouchající sokety k ní přidružené.

    A taky mě napadlo, že by bylo možné přidat nějakou operaci "stop + dočasné zamaskování", která by zaručila, aby službu nebylo možné aktivovat dokud to uživatel znovu ručně nepovolí, nebo nerestartuje systém.
    pavlix avatar 23.7.2011 18:29 pavlix | skóre: 50 | blog: pavlix
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    A taky mě napadlo, že by bylo možné přidat nějakou operaci "stop + dočasné zamaskování", která by zaručila, aby službu nebylo možné aktivovat dokud to uživatel znovu ručně nepovolí, nebo nerestartuje systém.
    Právě, protože tímhle systemd vůbec nenabízí ekvivalent původného stop. Mám pocit, že by někdy bylo lepší, kdyby lidi přemýšleli od začátku trochu víc prakticky a nebyli překvapeni, když někdo hledá jednu z klíčových a nejčastěji používaných funcí původního systému.

    A co teda příkaz service, ten se má taky zrušit?
    GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
    michich avatar 24.7.2011 11:30 michich | skóre: 50 | blog: ohrivane_parky
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Právě, protože tímhle systemd vůbec nenabízí ekvivalent původného stop.
    Naopak. On ten ekvivalent je až příliš přesný :-) Zastaví službu, nic víc.

    I dříve jsi mohl mít služby, které startovaly initskriptem i D-Bus aktivací. Se systemd dokonce můžeš zabránit D-Bus aktivaci služeb.

    Na druhou stranu právě s příchodem systemd začali vývojáři daemonů přidávat D-Bus (a socketovou) aktivaci i tam, kde dřív nebyla. Tohle je důvod, proč ti v F15 startuje NetworkManager. V F14 mohl nastartovat pouze initskriptem. V F15 začal být aktivován D-Bus rozhraním org.freedesktop.NetworkManager.
    A co teda příkaz service, ten se má taky zrušit?
    Ne, ten se rušit nebude.
    pavlix avatar 24.7.2011 14:44 pavlix | skóre: 50 | blog: pavlix
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Naopak. On ten ekvivalent je až příliš přesný :-) Zastaví službu, nic víc.
    Z hlediska reálného použití to ekvivalent není :).
    Na druhou stranu právě s příchodem systemd začali vývojáři daemonů přidávat D-Bus (a socketovou) aktivaci i tam, kde dřív nebyla. Tohle je důvod, proč ti v F15 startuje NetworkManager. V F14 mohl nastartovat pouze initskriptem. V F15 začal být aktivován D-Bus rozhraním org.freedesktop.NetworkManager.
    Jo, to je mě naprosto jasné, DBus aktivaci a systemd považuju za blízké příbuzné.
    Ne, ten se rušit nebude.
    A začne tedy fungovat, jak má, tedy nabízet možnost vypnutí služby „tak aby se nesapla?“.
    GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
    22.7.2011 07:58 Fa & Bi | skóre: 65 | blog: Delfinárium
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Prostě nejde vypnout na linuxovém OS služba tak, aby se během vteřin až minut sama nezapla.
    Myslím, že to nebude obecný problém „samozapínání“ služeb, že jde o udev a závislosti – tj. služba se nezapne sama od sebe, ale proto, že se zapne jiná služba, která na téhle závisí, nebo proto, že přijde nějaká zpráva (např. aktivace linky), která vede ke spuštění té služby.
    pavlix avatar 22.7.2011 17:19 pavlix | skóre: 50 | blog: pavlix
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Myslím, že to nebude obecný problém „samozapínání“ služeb, že jde o udev a závislosti – tj. služba se nezapne sama od sebe, ale proto, že se zapne jiná služba, která na téhle závisí, nebo proto, že přijde nějaká zpráva (např. aktivace linky), která vede ke spuštění té služby.
    A?
    GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
    22.7.2011 17:29 Fa & Bi | skóre: 65 | blog: Delfinárium
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Až to tady bude číst někdo neznalý, nezíská dojem, že se mu na linuxu můžou služby zapínat z ničeho nic jen tak samy od sebe. Třeba já mám na počítači docela dost trvale vypnutých služeb, a žádná z nich se nezapne sama od sebe. Tak aby se někdo třeba nebál, že si nemůže na svůj desktop nainstalovat sshd jen pro občasné použití, protože by se mu zapínalo samo od sebe.
    pavlix avatar 22.7.2011 17:44 pavlix | skóre: 50 | blog: pavlix
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    Až to tady bude číst někdo neznalý, nezíská dojem, že se mu na linuxu můžou služby zapínat z ničeho nic jen tak samy od sebe.
    Vaším příspěvkem jste tomu určitě nepomohl.
    GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
    23.7.2011 15:30 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů

    Já celé roky tvrdošijně odmítal nechat běžet dbus. Přišlo mi to jako naprosto zbytečná služba. Celkem se mi to dařilo, dokud někdo nedal v debianu prográmku "dia" tvrdou závislost na gconf2 a dbus, i když se samotný program spustí bez nich. Tehdy jsem si udělal post-update aptitude skript, který ve zkratce odebral exec bit všem dbus součástem a byl klid :-).

    Časem jsem přišel na to, že dost velká tuna programů vypisuje alespoň nefatální errory, protože už tak nějak počítají s dbusem (nevím, to ho tolik protlačilo Ubuntu?), takže jsem to vzdal a nechal ho běžet. Ono to možná takhle nějak bude i se systemd a podobnýma věcma - uživatel bude donucen se nestarat.

    Víra je firma si myslela, že něco je pravdivé. LMAO -- “zlehčovat mého osla”
    27.7.2011 16:52 marvn
    Rozbalit Rozbalit vše Re: Systemd – .service jednotky, náhrada init skriptů
    nebo s elektrinou...vsichni vyrobci uzitkovych veci pocitaji, ze ji mas doma zavedenou ;)

    Založit nové vláknoNahoru

    ISSN 1214-1267   Powered by Hosting 90 Server hosting
    © 1999-2013 Argonit s. r. o. Všechna práva vyhrazena.