Jak automaticky spustit služby při spouštění v systému Linux?

Photo of author

By etechblogcz

Jedním ze základních úkolů každého správce systému je nastavení automatického spouštění služeb po restartu serveru. Díky tomu se po výpadku serveru či plánované údržbě spustí všechny potřebné procesy samy, bez nutnosti manuálního zásahu.

Restart serveru může být způsoben různými okolnostmi, například:

  • Plánovanou údržbou, ať už týdenní, či měsíční
  • Nečekanými událostmi, jako jsou problémy s hardwarem nebo jádrem systému

Správným nastavením zajistíte, že se služby automaticky spustí po každém restartu, což vám ušetří práci a čas.

Přece jen trochu automatizace neuškodí, že?

Následující příklady ukazují, jak nastavit automatické spouštění služeb na dvou populárních distribucích, testovaných na serverech DigitalOcean.

CentOS nebo RHEL 6.x

V následujícím příkladu použiji webový server Apache, nicméně postup je totožný pro jakoukoli jinou službu, kterou chcete automaticky spouštět v systémech Red Hat Enterprise Linux (RHEL) nebo CentOS verze 6.

Název skriptu je libovolný, v tomto případě jsem použil `httpd`.

  • Přihlaste se na server jako uživatel root.
  • Vytvořte nebo zkopírujte svůj skript do adresáře `/etc/init.d/`.

[[email protected] init.d]# ls -ltr httpd
-rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
[[email protected] init.d]#

Pro nastavení automatického spouštění použijeme nástroj `chkconfig`, který je standardní součástí těchto distribucí.

  • Přidejte skript pro spouštění při startu pomocí příkazu `chkconfig –add`.

[[email protected] init.d]# chkconfig --add httpd
[[email protected] init.d]# chkconfig httpd on

  • Ověřte úspěšné přidání skriptu pomocí příkazu `chkconfig –list`.

[[email protected] init.d]# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[[email protected] init.d]#

A to je vše! Nyní se skript `httpd` automaticky spustí při každém startu systému Linux.

Pro zakázání automatického spouštění služby můžete použít následující příkazy:


chkconfig httpd off
chkconfig --del httpd

RHEL nebo CentOS 7.x/8.x

Konfigurace automatického spouštění služeb v RHEL 7 se mírně liší od RHEL 6. Pro správu služeb se zde používá systemd.

Většina softwaru, jako je Apache, PHP, MySQL nebo skripty Nginx, se přidává do systému služeb automaticky při instalaci.

Podívejme se na příklad s PHP-FPM.

Nejprve zkontrolujeme stav služby php-fpm (předpokládá se, že máte skripty v `/usr/lib/systemd/system/`).


[[email protected] ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[[email protected] ~]#

Jak vidíte, stav je disabled, což znamená, že služba není nastavena pro automatické spouštění.

Povolíme automatické spouštění php-fpm pomocí nástroje `systemctl`.


[[email protected] ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[[email protected] ~]#

Nyní zkontrolujeme stav znovu:


[[email protected] ~]# systemctl status php-fpmphp
php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[[email protected] ~]#

Služba php-fpm je nyní nakonfigurována tak, aby se spustila při startu systému. Můžeme to otestovat restartováním serveru.

Pokud potřebujete zakázat automatické spouštění služby, použijte následující příkaz:


systemctl disable php-fpm

Můžete se také podívat na další článek, který detailně popisuje systém systemd a automatické spouštění služeb.

Ubuntu

Konfigurace automatického spouštění služeb v Ubuntu se mírně liší. Řekněme, že název vašeho skriptu je `Nginx`.

  • Přihlaste se na server Ubuntu jako root.
  • Zkopírujte skript do složky `/etc/init.d/`.
  • Proveďte následující příkaz:

update-rc.d nginx defaults

  • Restartujte server, abyste se ujistili, že se služby spustí.

Doufám, že vám tento článek byl užitečný.

Správa systémů je zábavná a náročná, a pokud se chcete v této oblasti dále rozvíjet, můžete se podívat na tento kurz na Udemy.

Dále se můžete podívat na to, jak zjistit příčinu náhlého restartu systému Linux.
Zde najdete návod, jak nainstalovat/aktualizovat PHP-FPM 5.6 na CentOS 6.x.

Líbil se vám tento článek? Podělte se o něj s ostatními!