Wprowadzenie

Systemd to potężny system init używany przez większość nowoczesnych distro Linux do zarządzania procesami systemowymi i usługami. Jedną z jego kluczowych funkcji jest możliwość automatycznego uruchamiania usług przy starcie. Ten artykuł poprowadzi Cię przez proces konfigurowania usługi do uruchamiania przy starcie za pomocą Systemd, zapewniając, że Twoje krytyczne aplikacje będą działać niezawodnie za każdym razem, gdy system zostanie uruchomiony ponownie.

Zrozumienie usług Systemd

Systemd używa plików jednostek do definiowania i zarządzania usługami. Te pliki jednostek są przechowywane w:

  • Usługi systemowe: /etc/systemd/system/ i /lib/systemd/system/
  • Usługi specyficzne dla użytkownika: ~/.config/systemd/user/

Plik jednostki usługi zazwyczaj ma rozszerzenie .service i zawiera dyrektywy konfiguracyjne, które informują Systemd, jak zarządzać usługą.

Tworzenie pliku usługi Systemd

Aby skonfigurować usługę do uruchamiania przy starcie, musisz utworzyć plik usługi Systemd. Oto przykład, jak stworzyć niestandardową usługę.

1. Utwórz plik usługi

Uruchom następujące polecenie, aby otworzyć nowy plik usługi w edytorze tekstu:

sudo nano /etc/systemd/system/myservice.service

2. Zdefiniuj konfigurację usługi

Dodaj następującą treść, modyfikując ją zgodnie z Twoją aplikacją:

[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/usr/bin/myapp
Restart=always
User=myuser
Group=mygroup
WorkingDirectory=/home/myuser/

[Install]
WantedBy=multi-user.target

Wyjaśnienie:

  • After=network.target: Zapewnia, że usługa uruchamia się po dostępności sieci.
  • ExecStart=/usr/bin/myapp: Definiuje polecenie do uruchomienia usługi.
  • Restart=always: Zapewnia, że usługa jest uruchamiana ponownie w przypadku awarii.
  • User=myuser i Group=mygroup: Uruchamia usługę pod określonym użytkownikiem i grupą.
  • WantedBy=multi-user.target: Zapewnia, że usługa uruchamia się w trybie wieloużytkownikowym (domyślny poziom uruchamiania dla większości serwerów).

3. Przeładuj Systemd i włącz usługę

Po utworzeniu pliku usługi, przeładuj Systemd, aby rozpoznał nową usługę:

sudo systemctl daemon-reload

Włącz usługę, aby uruchamiała się przy starcie:

sudo systemctl enable myservice.service

4. Uruchom i zweryfikuj usługę

Uruchom usługę ręcznie:

sudo systemctl start myservice.service

Sprawdź status usługi:

sudo systemctl status myservice.service

Jeśli wszystko jest poprawnie skonfigurowane, powinieneś zobaczyć wynik wskazujący, że usługa działa.

Zarządzanie usługą

Oto kilka przydatnych poleceń do zarządzania Twoją usługą Systemd:

  • Uruchom ponownie usługę:
    sudo systemctl restart myservice.service
  • Zatrzymaj usługę:
    sudo systemctl stop myservice.service
  • Wyłącz usługę, aby nie uruchamiała się przy starcie:
    sudo systemctl disable myservice.service
  • Wyświetl logi związane z usługą:
    journalctl -u myservice.service --no-pager

Podsumowanie

Używanie Systemd do uruchamiania usług przy starcie to prosty i skuteczny sposób, aby zapewnić, że krytyczne aplikacje pozostają uruchomione po ponownym uruchomieniu systemu. Poprzez prawidłowe skonfigurowanie pliku usługi Systemd, włączenie go przy starcie i zarządzanie nim za pomocą systemctl, możesz poprawić niezawodność i automatyzację swojego środowiska Linux.