GNU/Linux >> Znalost Linux >  >> Linux

Začínáme s systemctl

Správa služeb je klíčovou odpovědností systémových administrátorů. Není pochyb o tom, že přechod mezi starší metodou SysV (pomocí service a chkconfig příkazy) a novější systemd -based příkazy (jako je systemctl ) byl kontroverzní. Ve skutečnosti má mnoho systémových administrátorů stále velmi silné pocity tak či onak.

Realita je taková, že mnoho distribucí, včetně Red Hat Enterprise Linux (RHEL), začalo spravovat služby pomocí systemd . Proto vy i já potřebujeme vědět, jak pracovat s systemctl příkaz pro správu.

Nejsem ten typ autora/školitele/administrátora, který předpokládá, že každý je pokročilý. S ohledem na to zaměřím tento článek na lidi, kteří potřebují základní a přímočaré vysvětlení toho, jak a kdy používat běžnější systemctl dílčí příkazy. Na závěr také uvádím skvělý trik pro rychlé zobrazení všech systemctl dílčí příkazy.

Poznámka:Manuálová stránka systemctl odkazuje na druhé slovo v řetězci jako na "příkaz", což se zdá poněkud matoucí. Budu odkazovat na systemctl sebe jako příkaz a poté řetězec, který za ním následuje, jako dílčí příkaz . argument je název služby a zaujímá třetí pozici v syntaxi.

Zde je příklad syntaxe:

systemctl subcommand argument
# systemctl status sshd

Ukážu, jak a kdy použít systemctl . Většina mých příkladů používá běžný sshd službu.

[ Čtenářům se také líbilo: Jak jsem se naučil přestat se bát a milovat systemd ]

Stav služby

Nejlepší místo, kde začít, je porozumět aktuální funkčnosti služby. Začnu tím nejjednodušším přístupem, použitím status dílčí příkaz:

# systemctl status sshd

Myšlenka je samozřejmě taková, že jste se právě posadili na neznámý linuxový server a potřebujete znát aktuální stav sshd servis. Všimněte si, že je poskytnuto mnoho dalších informací, včetně přehledu služby, odkud byla načtena, stavu, ID procesu (PID) a posledních změn.

systemctl status Příkaz je také užitečný při odstraňování problémů. Když řeším problémy s konfigurací, téměř okamžitě zkontroluji její stav pomocí systemctl . Proč se obtěžovat s firewally, SELinuxem a konfiguračními soubory, když služba ani neběží?

Nyní tedy víte, jak zkontrolovat stav služeb, jako je SSH. Jak manipulujete s tímto stavem?

Spouštění a zastavování služeb

Když změníte konfigurační soubor pro běžící službu, musíte buď restartovat nebo znovu načíst služba. Pokud tak učiníte, služba znovu přečte soubor, a proto provede změny. Za starých časů jste používali service příkaz, jako v příkladech níže:

# service sshd restart

Služby pod systemd jsou spravovány pomocí systemctl příkaz. Chcete-li restartovat službu SSH pomocí systemctl , zadejte:

# systemctl restart sshd

Osobně mi tato syntaxe přijde trochu jednodušší. Zní to skoro jako věta:"Systemctl, restartujte prosím sshd."

Syntaxe je podobná, pokud chcete službu zastavit nebo spustit:

# systemctl stop sshd

# systemctl start sshd

Služby, které se odmítají ladně zastavit, lze zabít pomocí systemctl , také. Chcete-li například zabít sshd služby, zadejte:

# systemctl kill sshd

Přebíjecí služby jsou trochu jiné. reload dílčí příkaz pouze způsobí, že služba znovu načte konfigurační soubor, zatímco restart dílčí příkaz ukončí všechna aktuální připojení a znovu načte konfigurační soubor.

Pokud například zadáte systemctl restart sshd , všechna aktuální připojení SSH budou zrušena. Pokud jej však znovu načtete, stávající připojení zůstanou zachována. V obou případech je konfigurační soubor znovu načten a veškeré změny jsou implementovány.

Reload způsobuje méně prostojů, ale ne všechny služby to podporují.

start , stop , restart, a reload dílčí příkazy ovlivňují pouze aktuální běhové prostředí.

Povolení a zakázání služeb

Mnoho administrátorů, kteří jsou v Linuxu noví, je zmateno rozdílem mezi start /stop a enable /disable . start jsem již probíral , stop a restart v předchozí části. Start a stop se používají ke změně aktuálního stavu služby. Pokud se však server restartuje, stav služby se vrátí na výchozí nastavení spouštění. Jinými slovy, pokud zastavím sshd službu a poté restartujte můj server, proces spouštění prozkoumá konfigurační soubor a buď spustí, nebo nespustí sshd , v závislosti na tom, co je uvedeno. Pokud službu zastavím a poté restartuji a konfigurační soubor říká, že je třeba službu spustit při spuštění, bude znovu spuštěna.

Dříve jste používali chkconfig příkaz k definování nastavení spuštění služby pro každou úroveň běhu. Zde je příklad:

# chkconfig --level 35 sshd on

Tento příkaz povolí sshd ke spuštění v úrovních 3 a 5.

Pomocí systemctl , konfigurace výchozího nastavení spouštění je dílem enable a disable dílčí příkazy. Syntaxe je stejná jako u start , stop a restart dílčí příkazy. Chcete-li například nastavit spuštění SSH při spuštění serveru, zadejte:

# systemctl enable sshd

Podobně pro konfiguraci SSH ne chcete-li spustit během spouštění, zadejte:

# systemctl disable sshd

Konfigurace výchozí konfigurace spouštění pro služby je přímočará, stejně jako spouštění a zastavování služeb. Zdá se však, že existuje určitý zmatek ohledně používání těchto dvou společně.

Používejte start a aktivujte společně

Někomu připadá zvláštní, že povolení služby ji nespustí. Pokud jste si například právě stáhli nový program a chcete jej spustit, abyste mohli otestovat jeho funkčnost a chcete jej nakonfigurovat tak, aby se spouštěl při startu serveru, musíte zadat dva příkazy:

# systemctl start sshd

# systemctl enable sshd

Zakázání služby probíhá stejným způsobem. Zadejte systemctl disable sshd aby se zabránilo spuštění SSH při spouštění serveru. Pokud však SSH běží v aktuálním běhovém prostředí, zůstane aktivní, i když je zakázáno. Musíte stop SSH pro vypnutí v aktuálním běhovém prostředí.

Chcete-li například zastavit SSH a zabránit jeho spuštění při spouštění systému, zadejte:

# systemctl stop sshd

# systemctl disable sshd

Nezapomeňte zkontrolovat status služby kdykoli si nejste jisti zadáním:

# systemctl status sshd

Zda je služba nakonfigurována tak, aby se spouštěla ​​automaticky, můžete zkontrolovat pomocí jiného systemctl dílčí příkaz:is-enabled . Chcete-li například zobrazit, zda je povoleno SSH, zadejte:

# systemctl is-enabled sshd

Spousta dílčích příkazů – trik

Pokryl jsem docela dost systemctl dílčí příkazy, včetně start , stop , restart , enable , disable , status , a další. To je hodně k zapamatování! Zde přichází na řadu doplňování záložek vašeho starého přítele. Vyzkoušejte na svém systému následující techniku:Napište systemctl a poté přidejte jednu mezeru. Klepněte na Tab dvakrát a bash zobrazí všechny dostupné systemctl dílčí příkazy! Myslím, že tento trik s doplňováním záložek využívá dostatečně málo systémových administrátorů.

[ Chcete si vyzkoušet své schopnosti správce systému? Proveďte hodnocení dovedností ještě dnes. ] 

Sbalit

Jak můžete vidět, správa služeb prostřednictvím systemctl velení opravdu není tak těžké. Připadá mi jednodušší a logičtější než starší service a chkconfig příkazy, osobně. Je také užitečné mít pouze jeden příkaz pro správu služeb namísto dvou.

Zde jsou klíčové body k zapamatování:

  • Pomocí start/stop/restart spravujte aktuální runtime.
  • Po úpravě konfiguračních souborů použijte start/stop/restart/reload.
  • Pomocí aktivace/deaktivace můžete spravovat výchozí akci při spuštění.
  • Používejte stav velmi brzy v procesu odstraňování problémů.

Konečně si nemusíte pamatovat všechny dostupné systemctl dílčí příkazy. Jednoduše zadejte systemctl a následujte za ním jednou mezerou a poté stiskněte Tab dvakrát. Bashova vestavěná funkce dokončování karet se postará o zbytek!

Systémoví správci se pravidelně přistihují, že manipulují se službami, a doufejme, že jste trochu pohodlnější v tom, kdy použít běžnější systemctl dílčí příkazy.


Linux
  1. Začínáme s ls

  2. Začínáme s PostgreSQL na Linuxu

  3. Začínáme s účtem prodejce Plesk

  1. Spravujte více instancí služeb pomocí systemctl

  2. Začínáme se Zsh

  3. Začínáme se Sambou pro interoperabilitu

  1. Začínáme s GnuCash

  2. Začínáme s Etcher.io

  3. Začínáme s SSH v Linuxu