Autostart – Uruchamianie własnej usługi podczas startu systemu Linux przy użyciu systemd

Autostart – Uruchamianie własnej usługi podczas startu systemu Linux przy użyciu systemd

Miałem ostatnio potrzebę, aby jeden z kontenerów Docker wystartował wraz ze startem systemu operacyjnego. Postanowiłem, ze podzielę się z Wami najszybszym, a jednocześnie najprostszym sposobem jaki do tej pory znalazłem na startowanie dowolnej usługi w Linuksie, a mianowicie używając narzędzia systemd.

Agenda
  1. Przygotowanie pliku konfiguracyjnego definiującego usługę
  2. Aktywowanie oraz zarządzanie nowo-powstałą usługą
  3. Przykład: autostart dowolnego kontenera Docker podczas startu systemu

 

Przygotowanie pliku konfiguracyjnego definiującego usługę

Definiowanie nowej usługi rozpoczynamy od utworzenia pliku my-service.service  w katalogu /etc/systemd/system:

 

Poniższy listing zawiera najprostszą wymaganą konfigurację, którą należy wprowadzić aby usługa w ogóle wystartowała. Jak widać jest to bajecznie proste. Podajemy jedynie nazwę, oraz komendy do starowania i zatrzymywania naszej usługi.

 

Jeśli przedstawiona powyżej konfiguracja nie spełnia Twoich oczekiwań zapraszam do zapoznania się z oficjalną dokumentacją narzędzia systemd. Odnajdziesz tam bardziej zaawansowanie opcje, które byś może rozwiążą twój problem. Jeśli będziecie zainteresowani tym tematem – mogę omówić go szerzej w osobnym wpisie.

 

Aktywowanie oraz zarządzanie nowo-powstałą usługą

Samo umieszczenie konfiguracji usługi w folderze /etc/systemd/system nie spowoduje jeszcze, że zostanie ona uruchomiona podczas startu systemu. Aby osiągnąć wspomniany  efekt, należy aktywować daną usługę. Na poniższych listingach zaprezentowane są wybrane komendy, które odpowiedzialne są odpowiednio za aktywację, dezaktywację, manualne uruchamianie i zatrzymywanie oraz sprawdzanie aktualnego stanu usługi.

Aktywacja oraz dezaktywacja uruchamiania usługi podczas startu systemu:

 

Manualny start oraz zatrzymanie usługi:

 

Sprawdzanie stanu usługi

 

Przykład: autostart dowolnego kontenera Docker podczas startu systemu

Nadszedł czas na omówienie przedstawionej wcześniej teorii na jakimś konkretnym przykładzie. Niech to będzie uruchomienie kontenera Docker o nazwie  my-container-name. Przyjmiemy, że nasza usługa nazywa się  my-docker-service.  Bazując na przedstawionym wcześniej sposobie należy utworzyć plik my-docker-service.service:

zawierający poniższą konfigurację usługi:

 

Ostatnim krokiem jest aktywacja uruchamiania usługi podczas startu systemu. Dla sprawdzenia poprawności konfiguracji możemy ręcznie uruchomić naszą usługę oraz sprawdzić jej status. Całość przedstawia poniższy listing:

 

To byłoby na tyle jeśli chodzi o ten wpis. Jeśli podoba Ci się konwencja i chciałbyś więcej takich wpisów, zostaw mi komentarz z tematem, który Cię interesuje a ja postaram się go przygotować. Tymczasem możesz mi pomóc dotrzeć do większej liczby odbiorców udostępniając ten wpis – Dziękuję.

 

Leave a Reply

avatar
  Subscribe  
Notify of
Close Menu