GNU/Linux >> Znalost Linux >  >> Linux

Správný způsob použití Ubuntu systemctl k ovládání Systemd

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 s start 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?


Linux
  1. Spravujte spouštění pomocí systemd

  2. Použití příkazu systemctl ke správě jednotek systemd

  3. Jak spravovat služby Systemd pomocí Systemctl v systému Linux

  1. Ke správě služeb použijte Systemctl

  2. Jak mohu nakonfigurovat službu systemd, aby se pravidelně restartovala?

  3. Systemd:Použití After a Requires

  1. Jak používat příkaz Systemctl ke správě služeb Systemd

  2. Jak vypsat Systemd Services v Linuxu

  3. Jak odstranit systémové služby