Tworzenie własnych usług systemd (.service) w systemie Linux – pełny poradnik
Linux

Tworzenie własnych usług systemd (.service) w systemie Linux – pełny poradnik

Tworzenie własnych usług systemd (.service) w systemie Linux – pełny poradnik

Systemd zarządza uruchamianiem i kontrolą usług (demonów) w nowoczesnych dystrybucjach Linuksa. Dzięki własnym plikom .service możesz łatwo:

  • uruchamiać własne skrypty przy starcie
  • pisać własne daemony
  • restartować procesy po awarii
  • ustawić zależności między usługami

📂 Gdzie umieścić własne pliki .service?

Lokalizacja dla użytkownika root:

/etc/systemd/system/

Dla usług tylko dla bieżącego użytkownika:

~/.config/systemd/user/

🧱 Krok 1: Przykładowy scenariusz

Masz skrypt bash w /home/admin/scripts/backup.sh, który chcesz uruchamiać jako usługę i mieć możliwość restartowania, monitorowania, a nawet uruchamiania automatycznie przy starcie systemu.

 

Tworzenie własnych usług systemd (.service) w systemie Linux – pełny poradnik
Tworzenie własnych usług systemd (.service) w systemie Linux – pełny poradnik

🛠️ Krok 2: Tworzenie pliku .service

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

Przykład zawartości:

[Unit]
Description=Codzienny skrypt backupu
After=network.target

[Service]
Type=simple
User=admin
ExecStart=/home/admin/scripts/backup.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

🔍 Co oznaczają pola?

Pole Znaczenie
Description Opis usługi
After=network.target Uruchom po dostępności sieci
Type=simple Domyślny typ – proces w tle
User=admin Użytkownik, który uruchamia usługę
ExecStart Komenda do uruchomienia
Restart=on-failure Automatyczny restart po błędzie
WantedBy=multi-user.target Uruchom przy starcie systemu

🔧 Krok 3: Załaduj usługę do systemd

sudo systemctl daemon-reexec
sudo systemctl daemon-reload

🚀 Krok 4: Uruchamianie, zatrzymywanie, włączanie

  • Uruchomienie:
sudo systemctl start backup.service
  • Sprawdzenie statusu:
sudo systemctl status backup.service
  • Włączenie autostartu:
sudo systemctl enable backup.service
  • Zatrzymanie:
sudo systemctl stop backup.service
  • Wyłączenie autostartu:
sudo systemctl disable backup.service

🧪 Krok 5: Diagnostyka problemów

Sprawdź logi usługi:

journalctl -u backup.service

Jeśli usługa nie działa poprawnie:

  • sprawdź ścieżkę do skryptu
  • upewnij się, że skrypt ma prawa do wykonania (chmod +x)
  • sprawdź, czy User= ma dostęp do katalogów i plików
Czytaj  Uruchamianie i zarządzanie usługami w Linuksie: Poradnik dla użytkowników

🔐 Wskazówki bezpieczeństwa

  • Jeśli uruchamiasz skrypt jako root, zadbaj o jego bezpieczeństwo
  • Dla procesów niskiego ryzyka lepiej ustawić User=nazwa_usera
  • Nie używaj /tmp jako miejsca na logi bez kontroli dostępu

🔁 Automatyczne restartowanie usług po awarii

Dodaj w sekcji [Service]:

Restart=on-failure
RestartSec=5

To sprawi, że usługa będzie próbowała się uruchomić ponownie co 5 sekund po błędzie.


📌 Inne przydatne opcje

  • ExecStop= – polecenie przy zatrzymaniu
  • ExecReload= – polecenie przy przeładowaniu
  • Environment=VAR=wartość – zmienne środowiskowe
  • WorkingDirectory=/home/admin/ – katalog roboczy

✅ Podsumowanie

Tworzenie własnych plików .service w systemd pozwala Ci:

✅ Automatyzować procesy
✅ Monitorować i restartować skrypty
✅ Włączać usługi przy starcie systemu
✅ Profesjonalnie zarządzać własnym środowiskiem serwerowym lub desktopowym

 

Polecane wpisy
Porównanie Popularnych Środowisk Graficznych w Linuxie: GNOME vs. KDE vs. Xfce
Porównanie Popularnych Środowisk Graficznych w Linuxie: GNOME vs. KDE vs. Xfce

Linux to jeden z najpopularniejszych systemów operacyjnych na świecie. Oferuje szeroką gamę możliwości dostosowywania, w tym wybór środowiska graficznego. Środowisko Czytaj dalej

Polecenie screen w Linuksie
Polecenie screen w Linuksie

Polecenie screen w Linuksie Screen to potężne narzędzie do zarządzania wieloma terminalami w systemie Linux. Umożliwia uruchamianie i zarządzanie wieloma Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.