Automatyczne uruchamianie usług po restarcie serwera
Kluczowym zagadnieniem dla każdego administratora systemu jest odpowiednia konfiguracja usług tak, aby po ponownym uruchomieniu serwera startowały one automatycznie. Dzięki temu unika się konieczności ręcznego włączania ich za każdym razem.
Powody restartu serwera mogą być zróżnicowane, od planowych działań, jak cotygodniowe czy comiesięczne przeglądy, po sytuacje awaryjne wynikające z problemów sprzętowych lub błędów jądra systemu.
Właściwa konfiguracja automatycznego uruchamiania usług oszczędza czas i eliminuje konieczność ich ręcznego włączania po każdej przerwie w działaniu serwera. To spore ułatwienie i krok w stronę automatyzacji.
Przykłady przedstawione poniżej dotyczą dwóch powszechnie używanych dystrybucji Linuksa, testowanych na serwerach Digital Ocean.
Konfiguracja w CentOS lub RHEL 6.x
Jako przykład posłuży nam serwer Apache HTTP, jednak opisana procedura jest uniwersalna i może być stosowana do wszystkich innych usług, które mają być automatycznie uruchamiane przy starcie systemu w wersjach Red Hat Enterprise Linux (RHEL) lub CentOS 6.
Nazwa skryptu może być dowolna, w tym przypadku wykorzystamy nazwę „httpd”.
- Zaloguj się na serwerze Linux jako użytkownik root.
- Utwórz lub skopiuj swój skrypt do katalogu /etc/init.d/.
ls -ltr httpd -rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
Skorzystamy z narzędzia chkconfig, standardowo dostępnego w systemach Linux i CentOS.
- Dodaj skrypt do uruchamiania przy starcie systemu za pomocą chkconfig z opcją –add.
chkconfig --add httpd chkconfig httpd on
- Upewnij się, że skrypt został poprawnie dodany, używając opcji –list.
chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Gotowe! Skrypt httpd zostanie uruchomiony wraz ze startem systemu Linux.
Aby wyłączyć automatyczne uruchamianie usługi, można użyć następujących komend:
chkconfig httpd off chkconfig --del httpd
Konfiguracja w RHEL lub CentOS 7.x/8.x
W RHEL 7 i nowszych proces konfiguracji usług startujących wraz z systemem wygląda nieco inaczej niż w RHEL 6. Do zarządzania usługami wykorzystywany jest systemd.
Większość popularnego oprogramowania, takiego jak Apache, PHP, MySQL czy Nginx, jest automatycznie dodawana do usług systemowych podczas instalacji.
Posłużmy się przykładem PHP-FPM.
Najpierw sprawdźmy status php-fpm (zakładamy, że skrypty znajdują się już w /usr/lib/systemd/system/).
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)
Jak widać, status usługi jest wyłączony, co oznacza, że nie jest ona skonfigurowana do automatycznego startu.
Włączmy automatyczne uruchamianie php-fpm przy starcie systemu, używając systemctl:
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.
Ponownie sprawdźmy status:
systemctl status php-fpm php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled) Active: inactive (dead)
Teraz php-fpm jest ustawiony na uruchomienie przy starcie systemu. Możemy to przetestować, restartując serwer.
Jeśli zajdzie potrzeba wyłączenia automatycznego startu usługi, można użyć następującego polecenia:
systemctl disable php-fpm
Warto również zapoznać się z dodatkowymi informacjami na temat usług systemd i ich automatycznego uruchamiania.
Konfiguracja w Ubuntu
W Ubuntu proces konfiguracji automatycznego uruchamiania usług jest nieco inny. Załóżmy, że nazwa naszego skryptu to „Nginx”.
- Zaloguj się do serwera Ubuntu jako użytkownik root.
- Skopiuj skrypt do katalogu /etc/init.d/.
- Wykonaj następujące polecenie:
update-rc.d nginx defaults
- Zrestartuj serwer, aby upewnić się, że usługa uruchamia się automatycznie.
Mam nadzieję, że te wskazówki okażą się przydatne.
Administracja systemami to fascynujące i pełne wyzwań zajęcie. Jeśli chcesz rozwinąć swoje umiejętności w tej dziedzinie, zachęcam do zapoznania się z kursem na Udemy.
Zapraszam także do przeczytania artykułu o tym, jak zidentyfikować przyczynę nieoczekiwanego restartu systemu Linux. Dodatkowo polecam zapoznanie się z instrukcją instalacji/aktualizacji PHP-FPM 5.6 w CentOS 6.x.
Czy artykuł okazał się pomocny? Zachęcam do podzielenia się nim z innymi!