Restartujte službu pomocí příkazu systemctl restart

Restartujte Sluzbu Pomoci Prikazu Systemctl Restart



The systemd je správce systémových služeb, který je široce používán v systému Linux. Spravovat systemd služby, systemctl používá se nástroj příkazového řádku. Tento nástroj se také používá k restartování jakékoli služby systemd.

Služby v systému Linux jsou spravovány prostřednictvím jejich konfiguračního souboru. Pokud jsou v konfiguračním souboru služby provedeny úpravy, je nutné iniciovat restart služby, aby se změny uplatnily. Po restartování služby systemd znovu vyhodnotí konfigurační soubor a použije úpravy.

V této příručce se budu zabývat tím, jak použít systemctl k restartování služby v Linuxu.







Poznámka: Tato příručka obsahuje příkazy a pokyny, které se spouštějí na Ubuntu 22.04. Příkaz bude fungovat bez problémů v distribucích, které jsou dodávány se správcem služeb systemd.



Příkaz systemctl restart

The restartovat příkaz v podstatě zastaví službu a znovu ji spustí. Pokud služba nebo jednotka není funkční, příkaz restart zahájí její činnost.



Příkaz restart neodebere procesy, které jsou propojeny se službou. Vezměte si příklad deskriptorů souborů, což jsou nezáporné identifikátory přiřazené operačním systémem souborům otevřeným službou. Pokud restartujete službu, deskriptor souboru propojený s touto službou tam zůstane během procesu restartování.





Pokud chcete vyprázdnit všechny propojené procesy se službou, musíte to udělat výslovně stop službu a Start to znovu.

Jak restartovat službu

V systému Linux můžete službu restartovat pomocí sudo systemctl nástroj příkazového řádku s restartovat možnost a uvedení jejího názvu. Obecná syntaxe je uvedena níže:



sudo restart systemctl [ Název služby ]

Budete potřebovat sudo oprávnění restartovat službu.

Například restartujeme ssh servis.

sudo systemctl restart ssh.service

Chcete-li restartovat více služeb, připojte každý název služby za restartovat příkaz s mezerou.

sudo systemctl restart ssh.service smbd.service

Další příkazy k restartu jsou uvedeny v tabulce níže:

zkuste-restartovat Zastaví nebo spustí zadanou službu nebo služby a pokud služba neběží, nespustí ji
reload-or-restart Znovu načtěte podporovanou službu nebo služby a pokud služba není podporována, restartujte ji a aktivujte
zkuste-reload-nebo-try-restart Znovu načtěte podporovanou službu nebo služby a pokud služba není podporována, restartujte ji, aniž byste ji aktivovali

Ve výše uvedených příkazech je .servis rozšíření je volitelné.

Jak automaticky restartovat službu

Pokud v systému Linux selže služba, pak systemd ve výchozím nastavení jej restartoval. V mnoha případech však může být nutné upravit způsob, jakým se služba restartuje. Například může být potřeba ruční zásah během procesu ladění zakázkové služby.

Soubory jednotek systemd nebo soubory služeb jsou umístěny na /etc/systemd/system nebo /lib/systemd/system hlavně podle toho, jak je služba vytvořena. Chcete-li zobrazit seznam souborů jednotek v systému Linux, použijte následující příkaz:

ls / lib / systemd / Systém

Můžete vidět konfigurační soubory různých služeb. Pojďme otevřít ssh.service soubor pomocí nano editor.

sudo nano / lib / systemd / Systém / ssh.service

Zde můžete upravit Restartujte nastavení. Ve výchozím nastavení je nastavena na při selhání . Další možnosti restartování služby jsou uvedeny níže:

  • Ne
  • vždy
  • při úspěchu
  • při selhání
  • na-nenormální
  • při přerušení
  • na hlídacím psu

Další možností v souboru služeb jednotky je RestartSec který se používá k určení počtu sekund, po kterých se služba restartuje.

[ Servis ]

Restartujte = vždy

RestartSec = 5

Tyto pokyny znamenají, že se služba restartuje při bootování a v případě přerušení se restartuje po 5 sekundách.

Po úpravě nastavení proveďte následující příkaz pro použití změn.

sudo systemctl reload-daemon

Další důležitá nastavení, která je třeba vzít v úvahu, jsou StartLimitIntervalSec a StartLimitBurst . Tyto možnosti jsou užitečné pro nastavení maximální doby a maximálního počtu opakování restartování služby.

[ Jednotka ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Výše uvedená instrukce naznačuje, že systemd automaticky zastaví pokus o restartování služby, pokud se nespustí po 300 sekundách a 4 pokusech.

Chcete-li ověřit, zda se služba restartuje po 5 sekundách nebo ne, ukončete službu pomocí PID služby a zabít příkaz.

sudo zabít -9 [ PID ]

Po 5 sekundách bude služba restartována; použít journalctl příkaz ke kontrole stavu ssh.service .

journalctl -v ssh.service

Jak restartovat službu při restartování závislé služby

V Linuxu je mnoho služeb vzájemně závislých a podobně je třeba je restartovat, když je restartována závislá služba.

V souboru služeb jednotky jsou tři různé možnosti pro restartování služby s restartováním závislé služby.

  • Část
  • BindsTo
  • Vyžaduje

Všechny tyto možnosti plní stejný úkol.

Vezměme si příklad ssh.service, který závisí na apparmor.service; Linux Security Module pro zajištění potřebného přístupu. Chcete-li zobrazit seznam závislostí služby v Linuxu systemctl s závislosti na seznamu název příkazu a služby.

systemctl list-dependencies ssh.service

Pokud tedy chcete restartovat službu ssh.service při restartování apparmor.service, musíte zahrnout volbu PartOf, BindsTo nebo Requires spolu s názvem služby v sekci [Unit] souboru apparmor.service.

Otevřete soubor apparmor.service.

sudo nano / lib / systemd / Systém / apparmor.service

Přidejte následující řádek do oddílu [Jednotka].

Část =ssh.service

Uložte soubor a spusťte příkaz daemon-reload.

sudo systemctl daemon-reload

Nyní restartujte ssh.service a poté zkontrolujte apparmor.service log.

Všimnete si apparmor.service restartován ve stejnou dobu ssh.service restartován.

Závěr

Chcete-li restartovat službu nebo služby v systému Linux, systemctl příkaz se používá s restartovat volba. The systemctl je nástroj příkazového řádku používaný ke správě služeb systemd. The restartovat volba spustí službu a poté ji zastaví, čímž se aktivuje neaktivní služba. Službu však můžete restartovat bez její aktivace pomocí zkuste-restartovat volba.