Správa služby nebo skupiny služeb v moderním počítači se systémem Linux může být překážkou, tedy pokud si nejste jisti, co děláte. Naštěstí pro vás Ubuntu Systemctl pokryl správu služeb na počítači se systémem Linux.
V tomto tutoriálu se naučíte, jak spravovat služby Systemd na Ubuntu PC spuštěním různých systemctl
příkazy.
Připraveni? Čas se ponořit!
Předpoklady
Tento tutoriál bude praktickou ukázkou, ale nevyžaduje speciální nástroje, takže pokud používáte Ubuntu 16 nebo vyšší verzi, můžete začít. Tento tutoriál používá pro ukázky verzi Ubuntu 20.04.3 LTS.
Co je Ubuntu Systemctl?
Před spuštěním příkazů Ubuntu systemctl se nejprve seznamte s tím, co je Systemctl. Systemctl je nástroj příkazového řádku pro ovládání a správu systemd a systémových služeb.
Stručně řečeno, Systemctl je ovládací panel nebo správce služeb pro systém systemd init pro inicializaci komponent po zavedení linuxového jádra. Systemctl je kolekce knihoven, démonů a utilit, které můžete použít ke správě služeb.
Chcete-li efektivně spravovat služby, seznamte se s různými stavy služeb následovně:
- Povoleno – označuje, že služba je nakonfigurována tak, aby se spouštěla při spuštění systému.
- Zakázáno – označuje, že služba je nakonfigurována tak, aby se nespouštěla při spouštění systému.
- Aktivní – označuje, že služba je aktuálně spuštěna.
- Neaktivní – označuje, že služba není aktuálně spuštěna, ale může se spustit, když se nějaká aplikace pokusí tuto službu spustit.
Výpis všech služeb
Nyní, když znáte různé stavy služeb, možná budete chtít vidět seznam všech služeb na vašem počítači Ubuntu. Seznam všech služeb poskytuje několik informací, které vás připraví na správu služeb.
Otevřete svůj terminál a spusťte níže uvedený příkaz pro seznam všech servisních jednotek (list-units
) (aktivní, běžící, ukončený nebo neúspěšný) se službou nastavenou jako typ jednotky (--type=service
).
systemctl list-units --type=service
Vyberte si kteroukoli ze služeb ze seznamu, které chcete spravovat později v tomto kurzu, a poznamenejte si JEDNOTKU jméno (např. apache2 ). Stisknutím mezerníku se posunete dolů nebo stisknutím klávesy „Q“ příkaz ukončíte.
Mimochodem, zde je dobrý průvodce skriptováním Linux Shell.
Výpis služeb s konkrétním stavem
Místo vypisování všech služeb možná budete chtít seznam služeb zúžit. Pokud ano, přidejte --state
Parametr bude stačit, protože odfiltruje služby s konkrétním stavem, který určíte.
Spuštěním některého z níže uvedených příkazů zobrazíte seznam všech aktivních služeb (--type=service --state=active
), jak spuštěné, tak ukončené.
systemctl list-units --type=service --state=active
Podobně, chcete-li uvést pouze ukončené nebo spuštěné služby, změňte hodnotu stavu z active
buď running
nebo exited
, jak je znázorněno v následujících příkazech:
systemctl --type=service --state=running
systemctl --type=service --state=exited
Výpis povolených služeb
Kromě výpisu aktivních, spuštěných a ukončených služeb můžete také uvést povolené a zakázané služby propojením grep
příkaz.
Pro zobrazení seznamu spusťte některý z níže uvedených příkazů (list-unit-files
) disabled
nebo enabled
služby (--type=service
).
## Lists all Enabled services
systemctl list-unit-files --type=service | grep enabled
## Lists all Disabled services
systemctl list-unit-files --type=service | grep disabled
Poznamenejte si povolenou službu, jak je uvedeno níže, protože ji budete později potřebovat k deaktivaci služby, ale tento výukový program používá acpid.service pro demo. Acpid je rozšiřitelný démon, který podporuje události ACPI (Advanced Configuration and Power Interface).
Výpis vlastností služby
Kromě výpisu služeb možná budete chtít zkontrolovat vlastnosti služby. Mít přehled o vlastnostech služby je užitečné pro odstraňování problémů, parametry procesu nebo chování při restartu.
Spusťte níže uvedený příkaz na show
služby (acpid.service
) vlastnosti ve formátu klíč=hodnota.
systemctl show acpid.service
Pokud nyní hledáte pouze konkrétní službu, můžete předat -p
příznak s názvem vlastnosti.
Spusťte níže uvedený příkaz na show
služby (acpid.service
) MainPID
vlastnictví.
systemctl show acpid.service -p MainPID
Správa konkrétní služby
Vzhledem k tomu, že základy seznamovacích služeb jsou z cesty, je čas spravovat konkrétní (jedinou) službu spuštěním systemctl stop
a start
příkazy.
Služba Apache (apache2) se používá pro následující ukázky, ale službu, kterou jste uvedli v části „Výpis všech služeb“, můžete volně spravovat. Než však službu zastavíte nebo spustíte, musíte nejprve ověřit stav služby.
Spuštěním níže uvedeného příkazu na terminálu zobrazíte apache2
podrobné informace o službě, jako je její status
.
systemctl status apache2
Níže můžete vidět, že služba apache2 je aktivní a běží.
Pro zobrazení stavu služby není nutné zadat heslo sudo, protože stav služby neměníte. Ale pokud spustíte, zastavíte nebo restartujete službu, musíte před příkaz sudo zadat heslo sudo.
Zastavení služby
Možná chcete zastavit službu, která zůstala viset a stále běží na pozadí. V takovém případě systemctl stop
příkaz je to, co potřebujete. Spusťte systemctl
příkazem níže zastavíte apache2
službu.
sudo systemctl stop apache2
Pokud chcete zastavit více služeb současně, zadejte každou službu oddělenou mezerou, například takto:
sudo systemctl stop sshd apache2
. V tomto příkazu zastavíte služby sshd i apache2 najednou.
Nyní spusťte systemctl status
příkaz stejně jako dříve, abyste ověřili, zda se služba apache2 zastavila.
systemctl status apache2
Níže můžete vidět, že stav služby apache2 se změnil na neaktivní (mrtvý) , což znamená, že služba byla zastavena.
Spuštění služby
Jak nyní spustíte službu, pokud jste si všimli, že vůbec neběží? Spustíte příkaz podobný zastavení služby, což je systemctl start
příkaz. Spusťte níže uvedený příkaz na start
apache2
službu.
sudo systemctl start apache2
Stejně jako zastavení více služeb můžete také spustit více služeb na jednom řádku příkazu. Nahraďte
stop
příkaz sstart
příkaz takto:sudo systemctl start sshd apache2
Nyní spusťte systemctl status
příkaz ještě jednou, abyste ověřili, zda apache2
služba běží.
systemctl status apache2
Pokud vidíte aktivní (běžící) stav, jak je uvedeno níže, je vše připraveno, protože služba je zpět v provozu.
Pokud dáváte přednost restartování služby hned, aniž byste ji museli nejprve zastavit. Pokud ano, přejděte na
systemctl restart
místo toho, jako je tento:sudo systemctl restart apache2
Povolení nebo zakázání služby
Možná existuje konkrétní služba, kterou chcete spustit nebo zabránit spuštění při spouštění systému. Pokud ano, spusťte systemctl
enable
nebo disable
příkaz je nejlepší přístup.
enable
dílčí příkaz vám umožní nakonfigurovat výchozí nastavení spouštění ve vašem systému, zatímco disable
dílčí příkaz brání službě ve spuštění při zavádění systému.
Spusťte systemctl
příkaz níže na disable
službu (acpid.service
), kterou jste uvedli v části „Výpis povolených služeb“. Zadejte své heslo sudo pro autorizaci spuštění příkazu.
sudo systemctl disable acpid.service
Nyní, protože acpid.service podporuje konfiguraci řízenou OS a správu napájení (OSPM); musíte jej znovu povolit. Příkaz k povolení služby je podobný jako deaktivace služby.
Spusťte systemctl
příkaz níže na enable
acpid.service
. Tento příkaz zaregistruje službu zpět na výchozí nastavení spouštění ve vašem systému.
sudo systemctl enable acpid.service
Závěr
V tomto tutoriálu jste si uvědomili, jak rychle můžete zastavit, spustit nebo restartovat služby spuštěním Ubuntu systemctl
příkazy. Také jste se dozvěděli, že systemctl
příkaz vám umožní spravovat nejen jednu, ale více služeb současně.
S těmito nově získanými znalostmi, proč nezautomatizovat řídicí služby ve vašem systému Ubuntu?