Linux je volitelný multitaskingový systém jako téměř každý v dnešní době. A aby to byl skutečný zážitek, mnoho aplikací se obsluhuje na pozadí prostřednictvím služeb. V různých časech a za různých okolností musí uživatel systému tyto služby spustit, zastavit nebo restartovat. Proto se v tomto příspěvku dozvíte, jak zacházet se službami v Linuxu pomocí příkazu systemctl.
V tomto příspěvku vám také ukážeme mnoho nástrojů, které příkaz umí. Kromě toho si vysvětlíme, co je to služba a jak jsme se dostali k systemctl.
Jaký je rozdíl mezi příkazem systemd a systemctl?
Než se podíváte na používání systemctl příkaz, je dobré zjistit rozdíl mezi příkazem a systemd .
S hlavním cílem optimalizace správy a načítání linuxových služeb, systemd byl narozen. Nahrazuje starý Sysvinit ne bez dávky kontroverze.
Systemd se skládá ze série démonů a skriptů kompatibilních se SysV a LSB. Umožňuje také spouštění démonů na vyžádání, monitorování procesů s využitím linuxových řídicích skupin.
Na druhé straně systemctl je příkaz používaný ke správě systémových služeb. Funguje jako jakési rozhraní pro systemd . Teď už ano. Budeme používat systemctl .
Správa služeb v systému Linux pomocí příkazu systemctl
Pokud používáte moderní distribuci Linuxu, pak jste nainstalovali a spustili systemd a tedy systemctl příkaz.
Samotný příkaz je velmi snadno použitelný. Základní syntaxe je tedy následující.
systemctl [OPTIONS...] {COMMAND} ...
Jako většina příkazů v Linuxu má možnosti, které upravují chování systému. Pokud zobrazíte systemctl nápovědy, uvidíte spoustu dostupných možností a příkazů.
:~$ systemctl --help
Je to proto, že ačkoli systemctl se používá ke správě systémových služeb, umožňuje také provádět další operace, jako je vypínání nebo restartování počítače.
Vy však budete studovat správu služeb s systemctl prostřednictvím situací.
1. Vyjmenujte služby systému
Nejprve musíte vzít v úvahu, že příkaz systemctl musí být použit jako superuživatel. Nebo alespoň, že váš uživatel může používat sudo . Poté otevřete terminál a zobrazte seznam systémových služeb pod systemd , spusťte následující příkaz
:~$ sudo systemctl
Jak můžete vidět z výstupu na obrazovce, je to trochu těžkopádné. Stále však můžete vizualizovat služby systému.
Je však možné přidat dílčí příkaz list-unit a filtr pro zlepšení prezentace výsledků.
:~$ sudo systemctl list-units --type=service --all
Tento obrázek představuje jasnější výsledky. Nejdůležitější sloupce jsou zatížení, aktivní a podsloupce, kde se zobrazuje, zda je v systému aktivní a zda běží.
Pokud chcete zobrazit pouze ty, které jsou spuštěny, stačí upravit předchozí příkaz pro tento:
:~$ sudo systemctl list-units --type=service --state=running
2. Spusťte, zastavte a restartujte služby pomocí příkazu systemctl
Nyní, když víte, jaké služby jsou ve vašem systému, můžete se rozhodnout je spustit, pokud jsou zastaveny, nebo zastavit, pokud běží.
Chcete-li spustit službu, použijte tento příkaz:
:~$ sudo systemctl start [service]
Nahraďte službu názvem služby. V případě MySQL by příkaz vypadal následovně:
:~$ sudo systemctl start mysql
Naopak, pokud ji chcete zastavit, použijte dílčí příkaz stop a název služby.
:~$ sudo systemctl stop [service]
Podle příkladu MySQL by to vypadalo takto:
:~$ sudo systemctl stop mysql
Na druhou stranu jsou chvíle, kdy musíte provést změny v konfiguraci některé služby. Aby se tyto změny projevily, musíte jej restartovat.
:~$ sudo systemctl restart [service]
Službu lze také znovu načíst. V tomto případě službu překonfigurujte pouze částečně. Dílčí příkaz je „reload“.
:~$ sudo systemctl reload [service]
Chcete-li jej úplně restartovat, musíte použít volbu restartovat.
3. Povolte a zakažte, aby se služba spustila nebo nespustila při spouštění systému
Když je pro provoz našeho serveru nebo některé z těchto aplikací velmi důležitá služba třetí strany, je vhodné požádat systemd, aby ji spustil společně se systémem.
Chcete-li to provést, postupujte podle následující syntaxe:
:~$ sudo systemctl enable [service]
Takže nahraďte [service] názvem služby, kterou potřebujete.
Chcete-li jej zakázat, použijte dílčí příkaz disable.
:~$ sudo systemctl disable [service]
Tímto způsobem můžete nastavit, které služby se budou spouštět automaticky a které ne.
4. Maskování a odmaskování služby pomocí Systemctl
Pokud chcete, aby byla služba zakázána, ale nelze ji povolit automaticky nebo ručně, měla by být maskována. Nebojte se, že jej lze vždy odmaskovat a znovu aktivovat.
K maskování služby tedy použijte následující příkaz
:~$ sudo systemctl mask [service]
A pro obrácení předchozího příkazu:
:~$ sudo systemctl unmask [service]
To přidává další vrstvu zabezpečení pro správu serveru. Ideální pro sdílení práce. Protože chcete-li spustit nebo povolit maskovanou službu, musíte ji nejprve odmaskovat.
5. Zkontrolujte stav služby pomocí příkazu systemctl
Často je užitečné vědět, jaký je stav služby. Toto slouží k odhalení možných chyb.
Chcete-li to provést, použijte následující příkaz:
:~$ sudo systemctl status [service]
Pokud je služba spuštěna, uvidíte obrázek podobný tomuto.
Pokud ne, uvidíte něco takového.
To je velmi užitečné, abyste věděli, zda je spuštěna určitá služba.
Závěr
Správa služeb z terminálu může být trochu komplikovaná, ale není. A to pomáhá, aby byl náš systém spravován uživatelem správně.
V tomto příspěvku jste použili příkaz systemctl pro základní správu těchto služeb. Nicméně příklady, které jste právě pozorovali, jsou nejběžnější případy, takže budou stačit.