Użyj Systemd, aby uruchomić usługę Linux przy starcie.
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
.servicei 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=myuseri
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.


