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

Jednou ze zásadních věcí, které musí správce systému vědět, je, jak nakonfigurovat službu při spouštění, takže když se server restartuje, spustí se automaticky.

Restartování serveru může mít různé důvody, včetně následujících.

  • Naplánováno na týdenní, měsíční
  • Neočekávané kvůli problému s hardwarem/kernelem

Pokud provedete správnou konfiguraci, nemusíte je spouštět ručně při každém restartu.

Trochu automatizace. ne?

Následující příklady jsou pro dvě populární distribuce testované na DigitalOcean servery.

CentOS nebo RHEL 6.x

V následujícím příkladu jsem použil HTTP server Apache, ale postup zůstává stejný pro všechny ostatní služby, které chcete spustit při spouštění ve verzi Red Hat Enterprise Linux (RHEL) nebo CentOS 6.

Můžete si ponechat libovolný název souboru skriptu a zde jsem ponechal httpd

  • Staňte se uživatelem root na svém linuxovém serveru
  • Vytvořte nebo zkopírujte svůj skript v /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]#

Použijeme nástroj chkconfig, který je standardně dostupný na Linuxu nebo CentOS.

  • Přidejte skript pro spuštění při bootování pomocí chkconfig s parametrem –add
[[email protected] init.d]# chkconfig --add httpd
[[email protected] init.d]# chkconfig httpd on
  • Potvrďte, že skript byl úspěšně přidán pomocí –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]#

To je vše! Skript httpd bude volán ke spuštění služeb při bootování Linuxu.

V případě, že potřebujete zakázat službu automatického spouštění, můžete použít následující příkazy

chkconfig httpd off
chkconfig --del httpd

RHEL nebo CentOS 7.x/8.x

Postup konfigurace služeb při spouštění v RHEL 7 se mírně liší od RHEL 6. Ke správě služeb používá systemd.

Většina softwaru, jako je Apache, PHP, MySQL, skripty Nginx, je přidána do služeb při instalaci.

Vezměme si příklad PHP-FPM.

Nejprve se podívejme na stav php-fpm (předpokládá se, že již 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 můžete vidět, stav je zakázán, což znamená, že není nakonfigurován pro spuštění při spouštění.

Povolme spuštění php-fpm při startu pomocí 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í se podívejme na stav

[[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] ~]#

php-fpm je nastaven tak, aby se spustil při bootování. Pojďme to otestovat restartováním serveru.

Pokud někdy potřebujete zakázat spouštění služeb při spouštění, můžete použít níže uvedený příkaz

systemctl disable php-fpm

Můžete se také raději podívat na tento příspěvek vysvětlující systemd a služby automatického spouštění při spouštění.

Ubuntu

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

  • Přihlaste se k serveru Ubuntu pomocí root
  • Zkopírujte skript do složky /etc/init.d/
  • Proveďte níže uvedený příkaz
update-rc.d nginx defaults
  • Restartujte server, abyste zajistili spuštění služeb.

To mi pomohlo a věřím, že to bude přínosné i pro vás.

Správa systému je vždy zábavná a náročná, a pokud v ní chcete posílit svou kariéru, můžete se obrátit na toto Kurz Udemy.

Dále se podívejte, jak najít důvod náhlého restartu Linuxu.
Zamiřte sem, pokud chcete nainstalovat/upgradovat PHP-FPM 5.6 na CentOS 6.x.

Užili jste si čtení článku? Co takhle sdílet se světem?