Zpět na blog

Jak nakonfigurovat službu v Linuxu na automatické spouštění po restartu nebo pádu systému: Část 1 (Praktické příklady)

Jak nakonfigurovat službu v Linuxu na automatické spouštění po restartu nebo pádu systému: Část 1 (Praktické příklady)

Úvod

V počítačovém světě nejde vždy všechno podle plánu. Neočekávané pády systému často nutí správce systému k restartování celého systému a jednotlivých služeb. Zjišťování a restartování každé služby, kterou vaše aplikace potřebuje ke svému běhu po pádu nebo restartu systému, může být únavné. V tomto prvním díle dvoudílného návodu vám na praktických příkladech ukážeme, jak nakonfigurovat služby tak, aby se po pádu systému nebo restartu serveru spouštěly automaticky. druhá část se bude zabývat teoretickými informacemi o tom, čeho jsme dosáhli v první části.

Pro praktické příklady použijeme databázovou službu MySQL. Stejné principy však platí i pro ostatní procesy, které tvoří kompletní server, jako jsou Nginx, Apache, Redis, nebo jiné aplikace. Můžete se podívat na naše návody na jak nainstalovat MySQL, Nginx a Apache.

V Linuxových distribucích existují tři hlavní inicializační (init) systémy v závislosti na spuštěné distribuci. Některé distribuce mohou obsahovat dva nebo více init systémů, jak je uvedeno níže:

  • System V – starší init systém, který se nachází ve starších distribucích jako:
    • Ubuntu 9.04 a starší
    • CentOS 5 a starší
    • Debian 6 a starší
  • Upstart – používaný v dřívějších distribucích jako:
    • CentOS 6
    • Ubuntu 9.10 až Ubuntu 14.10 a Ubuntu 14.04
  • Systemd – používaný v nejnovějších distribucích jako:
    • CentOS 7
    • Debian 7 a 8.
    • Ubuntu 15.04 a novější

Pozadí

Pro operační systémy, a zejména pro Linux a Unixové systémy, je běžné, že na pozadí běží procesy a služby. Tyto služby mohou být dodávány se softwarem operačního systému. Některé mohou pocházet z uživatelských aplikací, které nainstalujete.

Mezi služby operačního systému patří:

  • sshd – Jedná se o démona umožňujícího vzdálená připojení.
  • cupsd – Jedná se o démona řídícího tisk.

Mezi služby nainstalovaných aplikací patří:

  • httpd/apache2 – Služba dodávaná s webovým serverem Apache2.
  • nginx – Služba dodávaná s webovým serverem Nginx.

Aby byly naše webové aplikace, databáze, poštovní servery atd. dostupné, musí tyto služby běžet nepřetržitě. Pokud jste správce systému nebo zvídavý vývojář aplikací, chcete zajistit, aby tyto služby běžely nepřetržitě a v případě nešťastného pádu systému se po restartu systému automaticky spustily. A přesně to se v tomto praktickém návodu naučíme.

Ačkoli je nastavení upozornění a neustálé monitorování vaší linuxové distribuce klíčové, některé linuxové služby se mohou při správné konfiguraci samy opravit, a to díky init systémům, které služby spravují.

V linuxových distribucích existují provozní režimy, které implementují inicializaci systému, nazývané runlevels. Aby se služba automaticky spouštěla, musí být přidána do runlevelu. Každý systém typu Linux a Unix má čtyři běžné runlevely, jak je uvedeno níže:

  • 0 – Runlevel 0 označuje vypnutí systému.
  • 1 – Runlevel 1 označuje režim jednoho uživatele, záchranný režim.
  • 2, 3, 4 – Tyto runlevely označují stavy, kdy byl systém spuštěn ve víceuživatelském textovém režimu s povolenou sítí.
  • 5 – Runlevel 5 označuje víceuživatelský grafický režim s povolenou sítí.
  • 6 – Runlevel 6 označuje restart systému.

V tomto návodu se naučíte, jak nakonfigurovat linuxovou službu tak, aby se automaticky spouštěla při restartu systému pomocí tří různých dříve vysvětlených režimů init: System V, Upstart a Systemd.

Požadavky

Tento praktický návod předpokládá, že máte k dispozici Linux VPS, který můžete použít k postupu. Můžete využít bezplatné zkušební období u Cloudsigma a spustit několik serverů pro vyzkoušení příkazů. Můžete postupovat podle našeho podrobného návodu, jak nastavit servery Ubuntu.

Servery, které v tomto návodu vytvoříte, slouží čistě pro účely praktického procvičování a neměli byste tyto příkazy zkoušet na produkčním serveru, protože by došlo k narušení chodu mnoha služeb.

Některé z distribucí, které budete potřebovat:

  • Ubuntu 9.04 a starší, nebo Debian 6 x64 (bude použit k demonstraci init systému System V)
  • Ubuntu 14.04 x64 (bude použit k demonstraci Upstartu)
  • CentOS 7 x64 (bude použit pro demonstraci systemd).

Ujistěte se, že máte nastaveného uživatele bez oprávnění root s právy sudo.  Můžete se podívat na náš návod na konfiguraci souboru sudoers zde.

Použití System V

Toto je nejstarší init systém, který se používal v dřívějších distribucích Linuxu, jako jsou:

  • Debian 6 a starší
  • CentOS 5 a starší
  • Ubuntu 9.04 a starší

Většina instalovatelných serverových aplikací, jako jsou MySQL a Nginx, se standardně dodává s init skripty uloženými v /etc/init.d adresáři. Tyto skripty jim umožňují spuštění po restartu. Nemusí však být nakonfigurovány tak, aby se spouštěly automaticky po pádu systému.

Kontrolní seznam pro automatické spuštění pro System V

Prvním krokem je kontrola dostupnosti funkčního Bash init skriptu v adresáři /etc/init.d/service. Chcete-li službu povolit, v Debian nebo Ubuntu distribucích použijte příkaz update-rc.d, v CentOS systému použijte chkconfig. Nahraďte skutečným názvem vaší služby:

Výše uvedený příkaz vytvoří symlink v /etc/rc2.d adresáři, který vypadá jako výstup níže. Nevytvářejte jej sami, protože je generován automaticky:

Na konec souboru /etc/inittab přidejte řádek respawn, jak je znázorněno v obecném příkladu níže. Nezapomeňte jej nahradit skutečnou cestou ke spouštěcímu skriptu vaší aplikace:

Pro zastavení a spuštění služby zadejte následující příkazy:

Poté restartujte server:

Jak změny otestovat?

Po restartování serveru ověřte, zda služba běží, vyhledáním čísla procesu pomocí příkazu:

Ukončete proces pomocí příkazu:

Po pěti minutách ověřte, zda je služba spuštěná a funkční.

Praktická konfigurace System V s reálnou službou

V následujících krocích si vyzkoušíme reálnou serverovou aplikaci, jako je MySQL. Měli byste mít přístup k virtuálnímu stroji s Debian 6. Pomocí účtu, který má oprávnění sudo, se k němu připojte pomocí SSH nebo putty, pokud pracujete na systému Windows.

Krok 1: Instalace MySQL

Pro instalaci MySQL zadejte následující příkaz:

Po zahájení instalace budete vyzváni k zadání hesla pro uživatele root. Poté zadejte heslo podle svého výběru a potvrďte jej. Počkejte na dokončení instalace a poté zadejte následující příkaz pro spuštění zabezpečení MySQL:

Budete vyzváni k zadání hesla uživatele root, které jste zadali dříve. Stisknutím klávesy N jej zachováte. Poté stisknutím klávesy Y přijměte následující výzvy k odstranění anonymních uživatelů, zakázání vzdáleného přihlášení uživatele root a odstranění testovací databáze. Nakonec potvrďte opětovné načtení tabulky oprávnění, aby se změny projevily automaticky.

Tím je instalace MySQL dokončena. Zda služba běží, můžete zkontrolovat zadáním následujícího příkazu:

Krok 2: Konfigurace MySQL pro automatické spuštění po restartu

MySQL je ve výchozím nastavení nakonfigurováno tak, aby se spouštělo po restartu systému. Symlink na inicializační skript MySQL najdete v adresáři /etc/rc2.d adresáři. Tyto symlinky se nevytvářejí ručně. Můžete použít update-rc.d příkaz k povolení a zakázání služeb.

Zadejte následující příkaz pro výpis obsahu adresáře:

Zkontrolujte, zda vidíte symlink na init skript MySQL:

Písmeno S je důležité, protože dokud vidíte S skript v adresáři výchozího runlevelu pro danou službu, init systém spustí službu při startu serveru. Chcete-li ověřit, že se MySQL po restartu automaticky spustí, zadejte následující příkaz pro restartování systému:

Vaše ssh připojení se během restartu ukončí. Počkejte minutu nebo dvě a připojte se zpět. Spuštěním následujícího příkazu zkontrolujte, zda služba běží:

Výstup bude indikovat, že služba běží. To znamená, že se po restartu spustila automaticky. U služeb, které nejsou nakonfigurovány pro automatické spouštění, je budete muset nakonfigurovat sami.

Můžeme zakázat službu MySQL a restartovat systém, abychom otestovali, zda se automaticky spustí. V systémech Debian a Ubuntu můžete použít příkaz update-rc.d k přidání nebo odebrání služeb z init systému. Zadejte následující příkaz pro zakázání služby MySQL:

Restartujte systém a připojte se zpět pomocí ssh. Zkuste se připojit k MySQL pomocí následujícího příkazu:

Dostanete chybu MySQL jako:

Poté zadejte následující příkaz pro opětovné povolení služby:

Pokud používáte distribuci CentOS, příkaz bude:

Protože se MySQL původně nespouštělo, musíte ho spustit. Zadejte následující příkaz:

Krok 3: Konfigurace služby (MySQL) pro automatické spuštění po pádu systému

System V nespustí proces automaticky po pádu. Pád systému můžeme nasimulovat tak, že najdeme ID procesu MySQL a ukončíme ho. Zadejte následující příkaz pro vyhledání ID procesu MySQL:

Ve výstupu najděte procesy MySQL. Hlavní procesy, na kterých běží MySQL, jsou mysqld_safe a mysqld. Poznamenejte si jejich ID procesů (jsou to čísla) a použijte následující příkazy k jejich ukončení:

Zkontrolujte stav služby MySQL pomocí příkazu:

Výstup bude indikovat, že MySQL se zastavilo. Můžeme ho ručně restartovat pomocí příkazu service start. My však chceme automatický proces. Abychom dosáhli tohoto automatického chování, musíme upravit soubor /etc/inittab. Toto je první soubor, který System V init čte při spouštění. Soubor /etc/inittab obsahuje instrukce o tom, jak by se měl proces chovat, pokud spadne. Pokud je správně nakonfigurován, restartuje systém znovu, když dojde k pádu. V našem případě chceme zajistit, aby MySQL byla jednou z těchto služeb.

Soubor /etc/inittab je pro linuxovou distribuci nesmírně důležitý. Určuje, zda se váš systém restartuje nebo ne. Pokud v příkazech uděláte chybu, systém se při restartu nemusí spustit. Jak jsme již uvedli, doufáme, že tyto příkazy zkoušíte pouze v testovacím serverovém prostředí a ne v produkčním prostředí.

Nejprve si před zahájením úprav vytvořte kopii souboru:

Dále otevřete soubor pomocí nano:

Přejděte na konec souboru a přidejte následující fragment kódu:

Výše uvedený příkaz restartuje proces mysql_safe po pádu systému. Má čtyři pole oddělená dvojtečkami, jak je vysvětleno níže:

  • ms: Určuje ID procesu.
  • 2345: Určuje runlevely, na které se příkaz vztahuje. V tomto případě: runlevely 2, 3, 4, 5.
  • respawn: Určuje akci. V tomto případě proces znovu spouštíme nebo restartujeme.
  • /bin/sh /usr/bin/mysqld_safe: Poslední část definuje proces – příkaz, který se provede pro restartování procesu.

Nyní stiskněte Ctrl + O a Enter pro uložení souboru. Poté stiskněte Ctrl + X pro zavření editoru. Zadejte následující příkaz pro spuštění služby:

Restartujte server a poté spusťte dříve vysvětlené příkazy, abyste zjistili číslo procesu. Dále procesy ukončete, počínaje příkazem ps -ef | grep mysql. Počkejte několik minut a zadejte následující příkaz pro kontrolu stavu MySQL:

Výstup by měl indikovat, že služba MySQL běží, což znamená, že se dokázala po pádu restartovat. Stejný postup můžete použít i pro ostatní služby na vašem serveru.

Automatické spouštění služeb pomocí Upstart

Upstart je další init systém, který byl původně představen v Ubuntu 6 a později se stal výchozím v Ubuntu 9.10. RHEL 6 a jeho deriváty a Chrome OS od Googlu také používají init systém Upstart. Pro kroky v této sekci byste měli mít server s některou z následujících distribucí:

  • Ubuntu 9.10 až Ubuntu 14.10 a LTS verzi Ubuntu, tj. Ubuntu 14.04.
  • CentOS 6

Podívejme se, jak můžete nakonfigurovat soubory Upstart pro automatické spouštění služeb serveru v případě restartu nebo pádu systému. Upstart používá konfigurační soubory uložené v adresáři /etc/init pro řízení služeb v Linuxové distribuci. Většina nejnovějších verzí serverových aplikací, jako jsou MySQL a Nginx, instaluje své vlastní init skripty do adresáře /etc/init. Budou se tedy spouštět po restartu a po pádu systému, aniž byste museli cokoli dělat.

Kontrolní seznam pro automatické spuštění v Upstart

Zde je několik referenčních konfigurací, které je třeba zkontrolovat, abyste se ujistili, že je vaše služba nakonfigurována pro automatické spouštění.

  • Ujistěte se, že služba má init skript v adresáři /etc/init/service_name.conf service_name přičemž „service_name“ je skutečný název vaší konkrétní služby. V souboru /etc/init/service_name.conf byste měli zkontrolovat následující dva řádky:
    • Řádek obsahující něco jako start on runlevel [2345]. To indikuje, že služba bude spuštěna při restartu systému.
    • Řádek obsahující něco jako respawn. To indikuje, že služba bude po pádu systému znovu spuštěna/restartována.
  • Ujistěte se, že v adresáři není žádný soubor pro přepsání služby: /etc/init/service_name.override. Pokud jste jej vy nebo jiný správce systému nevytvořili dříve.
  • Zadejte následující příkazy pro zastavení a spuštění služby:
  • Restartujte systém a po několika minutách se znovu připojte. Nyní proveďte několik testů, abyste zjistili, zda vše funguje
  • Po restartu ověřte, zda služba běží. Zadejte následující příkaz pro vyhledání čísla procesu, přičemž nahraďte service_name skutečným názvem služby, kterou testujete:
  • Jakmile budete mít číslo procesu, zadejte následující příkaz k ukončení procesu:
  • Počkejte několik sekund a znovu ověřte, zda proces běží.

Praktická konfigurace Upstart se skutečnou službou

V další části se pokusíme ukázat, jak můžete použít Upstart se skutečnou službou. Testy budeme provádět na serveru s virtuálním strojem Ubuntu 14.04 se službou MySQL. Připojte se k testovacímu serveru Ubuntu 14.04 pomocí ssh nebo putty, pokud používáte Windows. Standardně byste měli používat uživatele bez oprávnění root s právy sudo. Jakmile se přihlásíte, můžeme začít s kroky:

Krok 1: Instalace MySQL

Před instalací jakéhokoli nového softwaru nezapomeňte vždy aktualizovat balíčky:

Nyní zadejte následující příkaz pro instalaci serveru MySQL:

Po vyzvání vytvořte heslo pro uživatele root. Počkejte na dokončení instalace a spusťte následující příkaz pro zahájení zabezpečení instalace MySQL:

Postupujte podle výzev, stejně jako v předchozí části. Poté vymažte oprávnění (flush privileges), aby se změny projevily okamžitě.

Krok 2: Konfigurace služby (MySQL) pro automatické spuštění po restartu systému

MySQL je nastaveno na automatické spuštění po restartu. Na jeho konfigurační soubory se díváme pouze proto, abychom se naučili, jak můžeme nakonfigurovat naše vlastní aplikace, aby se po restartu také automaticky spouštěly. Služba MySQL byla po instalaci spuštěna automaticky. Pojďme se však zadáním následujícího příkazu ujistit, že běží:

Měli byste vidět výstup indikující, že služba MySQL běží, něco jako:

Restartujte server a znovu se přihlaste. Opět zadejte následující příkaz, abyste otestovali, zda běží:

Výstup bude indikovat, že MySQL běží, což znamená, že se po restartu automaticky spustilo. V tomto případě není třeba nic měnit. Toto chování však nemusí být u jiných aplikací stejné. Možná se ptáte, jak inicializační systém Upstart ví, že má MySQL po restartu automaticky spustit. MySQL instaluje svůj spouštěcí konfigurační soubor Upstart v umístění /etc/init/mysql.conf. Soubory Upstart nejsou shellové skripty, ale textové soubory se skriptovými bloky pro události před spuštěním (pre-start) a po spuštění (post-start). Tyto bloky instruují systém Upstart, co má provést, když se proces MySQLd spouští nebo když již byl spuštěn.

Zadejte následující příkaz pro otevření souboru v editoru nano:

Výstup souboru může vypadat takto:

Jak je vidět, blok start instruuje MySQL, aby se spustilo na úrovních běhu (runlevels) 2, 3, 4, 5, a nikoli 0, 1, 6. Pokud definujete konfiguraci Upstart pro svou aplikaci, definujete ji v této sekci. Blok respawn instruuje Upstart, co má dělat po havárii. O tom budeme diskutovat v další části, takže nechte soubor otevřený v editoru nano.

Krok 3: Konfigurace služby (MySQL) pro automatické spuštění po havárii

Direktiva respawn v souboru /etc/init/mysql.conf instruuje Upstart, aby po havárii restartoval službu MySQL.

Direktiva respawn limit instruuje Upstart, kolikrát by se měl pokusit restartovat zhavarovanou službu MySQL v intervalu určeném v sekundách. První argument (2) udává počet pokusů. Druhý argument (5) udává interval v sekundách. Pokud se Upstartu po havárii nepodaří v rámci tohoto limitu službu MySQL znovu spustit, zůstane zastavená. Toto chování je navrženo tak, aby chránilo stabilitu systému v případě, že se neustále pokouší restartovat dokola krachující služby. Nyní můžete editor zavřít bez provádění jakýchkoli změn.

Pojďme otestovat, zda se MySQL po havárii automaticky znovu spustí. Zadáním následujícího příkazu zkontrolujte stav a získejte číslo procesu služby MySQL:

Výstup by měl vypadat nějak takto. Poznamenejte si číslo procesu, protože ho použijeme později:

Dále zadejte následující příkaz k ukončení (kill) procesu. Tím se simuluje havárie. Nahraďte číslem procesu, které jste získali v předchozím příkazu:

Znovu zkontrolujte stav MySQL zadáním následujícího příkazu:

Mělo by znovu běžet, ale pravděpodobně s jiným číslem procesu:

K tomu dochází kvůli direktivě respawn v /etc/init/mysql.conf soubor. Zajišťuje, že v případě jakéhokoli selhání systému se MySQL automaticky spustí. Vaše aplikace, která závisí na databázi MySQL, tak bude nadále fungovat podle očekávání.

Automatické spouštění služeb pomocí Systemd

Systemd je inicializační systém, který se nachází ve většině nejnovějších distribucí Linuxu. Pravděpodobně ho použijete, když spustíte novou VPS. Poprvé byl představen v Fedora. Je součástí RHEL 7 a jeho derivátů, jako je CentOS 7. Od Ubuntu 15.04 najdete Systemd nativně. Systemd je zpětně kompatibilní s inicializačními skripty a příkazy System V. Proto by měla jakákoli služba System V fungovat i pod Systemd. Většina příkazů používaných v System V a Upstart byla upravena tak, aby fungovala se Systemd.

Se Systemd se většina serverových aplikací, jako je MySQL a Nginx, spustí automaticky po restartu nebo vypnutí, aniž byste museli cokoli měnit. Pro své vlastní aplikace musíte vytvořit vlastní init skripty pro automatické restartování služeb.

Podrobnější informace o Systemd naleznete v našem návodu, jak spravovat služby a jednotky Systemd pomocí Systemctl.

Kontrolní seznam pro automatické spuštění v Systemd

Zde je několik referenčních konfigurací, které můžete zkontrolovat, abyste se ujistili, že je vaše služba nakonfigurována pro automatické spouštění se Systemd.

  • Služba musí mít funkční init skript Systemd umístěný v /etc/systemd/system/multi-user.target.wants/serviceName.service. ServiceName je skutečný název služby, kterou konfigurujete.
  • Příkaz pro povolení služby je:
  • Příkaz vytvoří symbolický odkaz v adresáři /etc/systemd/system/multi-user.target.wants/, který může vypadat podobně jako:
  • S tímto symbolickým odkazem na svém místě budete mít povoleno automatické restartování po spuštění.
  • Chcete-li změny aktivovat, znovu načtěte systémového démona a poté restartujte službu pomocí následujících příkazů:
  • Chcete-li otestovat, zda vaše konfigurace spustí službu po restartu, můžete systém restartovat:
  • Po restartu systému vyhledejte číslo procesu pomocí příkazu:
  • Poznamenejte si číslo procesu a ukončete jej pomocí příkazu:
  • Počkejte několik sekund a znovu vyhledejte službu, abyste ověřili, že opět běží.

Praktická konfigurace Systemd se skutečnou službou

V této části se pokusíme nakonfigurovat službu MySQL na virtuálním stroji s Ubuntu 20.04.

Krok 1: Připojte se k vašemu virtuálnímu privátnímu serveru (Ubuntu 20.04 nebo CentOS 7 x64)

Přihlaste se ke své VPS nebo ji vytvořte v panelu Cloudsigma a připojte se pomocí ssh nebo putty, pokud používáte Windows. Pro tuto část návodu používáme server Ubuntu 20.04. Stejné příkazy lze použít i pro CentOS 7. Ujistěte se, že používáte uživatele bez oprávnění root s právy sudo.

Krok 2: Nainstalujte MySQL (službu, kterou konfigurujeme)

Nejprve aktualizujte systém:

Poté můžete nainstalovat server MySQL pomocí příkazu:

Poté spusťte následující příkaz pro zabezpečení MySQL:

Skript se vás zeptá, zda chcete nastavit komponentu VALIDATE PASSWORD, nebo stisknutím libovolného písmene pokračovat bez povolení této komponenty. Kliknutím na tento odkaz se dozvíte více o komponentě pro ověřování hesla v MySQL.

Stisknutím klávesy 1 tuto možnost povolte a poté stisknutím klávesy 1 zvolte střední úroveň. Zadejte silné heslo: kombinaci velkých a malých písmen, speciálních znaků a číslic. Potvrďte heslo a potvrďte výzvu, která se vás zeptá, zda chcete použít zadané heslo jako heslo uživatele root. U ostatních výzev stiskněte y pro jejich přijetí, stejně jako v předchozích částech. Nakonec vymažte oprávnění (flush privileges) pro MySQL, aby se změny projevily.

Krok 3: Konfigurace automatického spouštění MySQL po restartu

MySQL je nakonfigurováno tak, aby se spouštělo po restartu, takže nemusíte provádět žádné změny. Můžeme však použít konfigurační soubory MySQL, abychom se naučili, jak konfigurovat naše vlastní soubory.

Nejprve zkontrolujte, zda byla služba MySQL nakonfigurována pro spuštění při startu systému. Zadejte následující příkaz (všimněte si, že v systému CentOS se služba MySQL nazývá mysqld):

Zde je výstup:

CS screenshot

Dále restartujte VPS zadáním následujícího příkazu:

Připojte se zpět pomocí ssh a zadejte následující příkaz pro kontrolu stavu služby MySQL:

Měli byste získat výstup podobný tomu na snímku obrazovky níže:

System Crash 3

Chcete-li službu MySQL zakázat, zadejte následující příkaz:

Výstup indikuje, že symbolické odkazy na službu MySQL byly ze Systemd odstraněny:

screenshot it 4

Zda je služba povolena v inicializačním systému Systemd, můžete otestovat zadáním následujícího příkazu:

Výstup ukáže, že je zakázána. Pokud restartujete systém, MySQL se při startu nespustí:

disabled screenshot

Službu povolíte zadáním následujícího příkazu:

Výstup ukazuje symbolický odkaz na službu MySQL vytvořený v inicializaci Systemd:

screenshot 5

Při restartu se služba MySQL spustí automaticky.

Krok 4: Konfigurace automatického spouštění MySQL po pádu

MySQL je nakonfigurováno tak, aby se po pádu automaticky restartovalo. Podívejme se, jak je tato konfigurace implementována v Systemd. Systemd používá pro konfiguraci unit soubory. Zadáním následujícího příkazu otevřete konfigurační soubor mysql.service v editoru nano:

Výstup vypadá takto:

System Crash 2

Zajímá nás direktiva Restart. Podle definice se MySQL restartuje, pokud dojde k selhání. Direktiva Restart definuje, co by se mělo v Systemd stát, stejně jako direktiva Respawn v Upstart.

Ne všechny služby budou mít tuto direktivu. Chcete-li povolit restartování služby po pádu, můžete vždy přidat direktivu Restart pod blok [Service] konfiguračního unit souboru služby. Pokud záhlaví [Service] neexistuje, přidejte jej. Nyní ukončete editor stisknutím Ctrl + X.

Chcete-li emulovat pád, najděte ID procesu MySQL zadáním následujícího příkazu:

Příkaz pro kontrolu stavu zobrazí ID procesu, v našem případě je to 3555:

System Crash 1

Zadáním následujícího příkazu proces ukončíte. Nahraďte jej ID procesu, které jste získali na svém serveru:

Zadáním následujícího příkazu zkontrolujte stav:

Výstup ukazuje, že MySQL běží, ale s novým ID procesu. To znamená, že se po pádu automaticky restartovalo:

screenshot 8

Závěr

V tomto návodu jsme vás seznámili se třemi inicializačními systémy v distribucích Linuxu: System V, Upstart a Systemd. Naučili jsme se, jak použít jakýkoli z těchto init systémů ke konfiguraci vašich nepřetržitě běžících služeb pro automatické spuštění po restartu nebo pádu systému. To by pro vás mělo sloužit jako výchozí bod, když potřebujete nakonfigurovat své služby. První část této série byla převážně praktickým návodem. druhá část je více teoretická a obsahuje více podrobností o tom, co jsme dělali v první části. Své testovací servery zatím nemažte, protože je využijete i ve druhé části.

Příjemnou práci s počítačem!

 

author

Manpreet Singh

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.