V této příručce budu diskutovat o příkazech service a systemctl ao tom, jak se liší, pokud jde o správu služeb.
Než půjdeme dále, pojďme nejprve porozumět dvěma populárním iniciačním systémům Linuxu; System a Systemd.
System V vs. Systemd
Init systém v Linuxu je klíčovou součástí bootovacího procesu. Je to první proces s PID 1, který se spouští při startu systému. Poté spustí procesy přítomné v souboru inittab. System V také zná SysV a systemd jsou oblíbené iniciační systémy Linuxu.
The SysV je starší init systém a byl součástí starších unixových a linuxových distribucí. Spravuje systémové služby pomocí skriptů umístěných v /etc/init.d. Některé distribuce Linuxu, které stále používají SysV, jsou Slackware, Gentoo a antiX Linux.
Na druhou stranu, systemd byl spuštěn v roce 2010 a byl rychle přijat mnoha distribucemi Linuxu. Systém systemd init spravuje služby prostřednictvím souborů .service. Nyní je součástí všech moderních distribucí Linuxu včetně Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu a distribucí založených na těchto operačních systémech.
Systemd je mnohem efektivnější ve srovnání se SysV. Poskytuje rychlejší dobu spouštění, efektivní správu služeb a zpracování závislostí.
Oba init systémy poskytují dva nástroje příkazového řádku pro správu služeb.
V následujících částech průvodce se budu těmito dvěma nástroji zabývat.
servisní příkaz
The servis příkaz je obal skriptu, který spouští skripty umístěné v /etc/init.d adresář. Byl vyvinut pro správu služby SysV nebo Systém V init systém. Distribuce Linuxu, které používají SysV jako init systém, používají servis příkaz pro správu služeb.
Obecná syntaxe pro použití příkazu service je uvedena níže.
servis [ Název služby ] [ akce ]Chcete-li získat stav služeb řízených systémem V, použijte příkaz service s – stav – vše volba.
servis --stav-vše
The + označuje, že je služba spuštěna, a – ukazuje, že služba je neaktivní.
Aktuální stav jakékoli konkrétní služby lze také zkontrolovat uvedením názvu služby.
servis [ Název služby ] postavení
Některé další užitečné příkazy služby, jako je spuštění, zastavení a restartování služby, jsou uvedeny níže.
servis [ Název služby ] Startservis [ Název služby ] stop
servis [ Název služby ] restartovat
Tento servisní příkaz poskytuje základní ovládání pro správu služeb. Většina linuxových distribucí nahradila SysV jako init systém, ale kvůli starší kompatibilitě je tento příkaz stále dodáván v mnoha nejnovějších linuxových distribucích ihned po vybalení.
Příkaz systemctl
Pomocí příkazu systemctl můžete ovládat služby v /lib/systemd/system a /etc/systemd/system adresáře. Je součástí systemd; init systém, který se nachází ve většině současných distribucí Linuxu.
Systemctl je navržen tak, aby poskytoval větší kontrolu nad správou systémových služeb. Obecná syntaxe pro použití příkazu systemctl je uvedena níže:
systemctl [ volba ] [ Název služby ]Chcete-li zkontrolovat stav všech služeb, použijte následující příkaz.
systemctl seznam-jednotek --typ = služba --VšechnoPro použití konkrétní služby:
stav systemctl [ Název služby ]
Příkazy pro základní správu služby pomocí systemctl jsou uvedeny níže:
systemctl umožnit [ Název služby ]start systemctl [ Název služby ]
zastavení systemctl [ Název služby ]
systemctl zakázat [ Název služby ]
restart systemctl [ Název služby ]
Příkaz systemctl jde dále, pokud jde o řízení služeb. Níže uvedená tabulka obsahuje některé pokročilé příkazy systemctl.
seznam-cest | Chcete-li zobrazit cestu všech služeb v paměti |
je-aktivní [název_služby] | Chcete-li zkontrolovat, zda služba nebo jednotka běží nebo ne |
závislosti na seznamu [název_služby] | Chcete-li vytisknout seznam závislostí zadané služby |
reset se nezdařil | Chcete-li resetovat služby, které se nepodařilo načíst kvůli nějaké abnormalitě |
maska [název_služby] | Zakázat službu a znemožnit její spuštění |
get-default | Chcete-li vytisknout výchozí úroveň nebo cíl běhu |
set-default [cíl] | Chcete-li nastavit výchozí úroveň nebo cíl běhu |
is-system-runing | Pro kontrolu provozního stavu systému |
restartovat | Chcete-li restartovat systém |
vypnout | K vypnutí systému |
Proč v distribucích Linuxu stále existuje služba Command se systemd init System
Příkaz service je stále součástí mnoha distribucí Linuxu, protože se jedná o obalový skript a abstrahuje základní init systém, ať už je to SysV nebo systemctl. Například na Ubuntu se příkaz služby přesměruje na systemctl.
Závěr
Služba a systemctl jsou dva nástroje příkazového řádku patřící k systémům SysV a systemd init. Navzdory nahrazení příkazu služby v moderních distribucích Linuxu zůstává klíčovým nástrojem pro údržbu služeb díky jednoduchosti a kompatibilitě. Systemctl je naproti tomu součástí všech současných linuxových distribucí a poskytuje pokročilé možnosti správy služeb.