Użycie systemd do uruchomienia usługi Linux przy starcie systemu ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
11.11.2024

Użycie systemd do uruchomienia usługi Linux przy starcie systemu

Dla osób zarządzających aplikacjami lub usługami na hostingu Linux VPS, zapewnienie, że krytyczne usługi uruchamiają się automatycznie podczas rozruchu, jest niezbędne do utrzymania nieprzerwanego działania. Korzystając z

systemd
, potężnego i elastycznego systemu init, można łatwo skonfigurować usługi tak, aby uruchamiały się natychmiast po uruchomieniu systemu, co ma kluczowe znaczenie dla aplikacji internetowych, baz danych i innych istotnych usług działających w środowiskach VPS. Niniejszy przewodnik przeprowadzi Cię przez proces konfigurowania niestandardowej jednostki usługi systemd, dzięki czemu możesz zautomatyzować uruchamianie usług, usprawnić zarządzanie i zapewnić niezawodność konfiguracji hostingu Linux VPS. Wykonując te kroki, można zachować większą kontrolę nad zachowaniem usług systemu i poprawić jego ogólną funkcjonalność.

Użyj systemd, aby uruchomić usługę Linux podczas rozruchu

systemd to nowoczesny system init wykorzystywany przez wiele dystrybucji Linuksa do zarządzania usługami i zasobami systemowymi. Jedną z jego kluczowych funkcji jest możliwość automatycznego uruchamiania usług podczas rozruchu, zapewniając, że krytyczne aplikacje i usługi są gotowe do działania zaraz po uruchomieniu systemu. Ten artykuł poprowadzi Cię przez kroki tworzenia jednostki usługi systemd i umożliwi jej uruchamianie podczas rozruchu.

Czym jest systemd?

systemd to system startowy, który zastępuje starsze systemy startowe, takie jak SysVinit i Upstart. Zarządza procesami i usługami systemowymi, pozwalając na zrównoleglenie uruchamiania usług, uruchamianie demonów na żądanie i lepszą kontrolę zasobów. Dzięki strukturze plików jednostkowych, systemd zapewnia elastyczny sposób zarządzania usługami, gniazdami, urządzeniami i innymi zasobami systemowymi.

Tworzenie usługi systemd

Aby uruchomić usługę przy starcie systemu za pomocą systemd , należy utworzyć plik jednostki usługi. Plik ten zawiera wszystkie niezbędne informacje dla systemd do zarządzania usługą. Oto jak utworzyć i skonfigurować plik jednostki usługi:

Krok 1: Sprawdź katalog roboczy

  1. Otwórz plik jednostki usługi, aby sprawdzić dyrektywę WorkingDirectory:
    sudo nano /etc/systemd/system/myapp.service
  2. Znajdź linię WorkingDirectory. Powinna ona wyglądać mniej więcej tak ( szukaj: Create the Service Unit File):
    WorkingDirectory=/etc/systemd/myapp
  3. Sprawdź, czy określony katalog istnieje:
    ls -l /etc/systemd/myapp

    * /path/to/myapp – zastąp rzeczywistą ścieżką, której chcesz użyć. Jeśli pojawi się błąd, że katalog nie istnieje, należy go utworzyć.

Krok 2: Utwórz katalog roboczy

  1. Jeśli katalog nie istnieje, utwórz go:
    sudo mkdir -p /etc/systemd/myapp
  2. Ustaw odpowiednie uprawnienia, aby użytkownik określony w dyrektywie User usługi mógł uzyskać do niego dostęp. Na przykład, jeśli usługa działa jako myuser:
    sudo chown myuser:myuser /etc/systemd/myapp

    Tworzenie pliku jednostki usługi

    1. Otwórz terminal w systemie Linux.
    2. Utwórz nowy plik jednostki usługi w katalogu /etc/systemd/system/. Nazwa pliku powinna kończyć się .service. Na przykład, aby utworzyć usługę dla niestandardowej aplikacji o nazwie myapp, należy uruchomić polecenie:
      sudo nano /etc/systemd/system/myapp.service
    3. Dodaj następującą zawartość do pliku, modyfikując ją w razie potrzeby dla swojej aplikacji:
      [Unit]
      Description=My Custom Application
      After=network.target
      [Service]
      ExecStart=/usr/bin/myapp
      Restart=zawsze
      Użytkownik=myuser
      WorkingDirectory=/etc/systemd/myapp
      [Install]
      WantedBy=multi-user.target

      • sekcja [Unit]: Ta sekcja zawiera metadane i zależności dla usługi.
        • Opis: Krótki opis usługi.
        • Po: Określa, że usługa powinna zostać uruchomiona po udostępnieniu sieci.
      • sekcja [Service]: Ta sekcja definiuje zachowanie usługi.
        • ExecStart: Polecenie uruchamiające usługę. Zastąp /usr/bin/myapp ścieżką do pliku wykonywalnego.
        • Restart: Określa zachowanie restartu. zawsze oznacza, że usługa uruchomi się ponownie, jeśli ulegnie awarii.
        • User: Określa użytkownika, pod którym powinna działać usługa.
        • WorkingDirectory: Ustawia katalog roboczy dla usługi.
      • sekcja [Install]: Ta sekcja definiuje sposób włączenia usługi.
        • WantedBy: Określa cel, w ramach którego usługa powinna zostać uruchomiona. multi-user.target jest wspólnym celem dla usług użytkownika.

Krok 3: Weryfikacja uprawnień

  1. Sprawdź, czy użytkownik ma prawidłowe uprawnienia dostępu do katalogu roboczego:
    ls -ld /etc/systemd/myapp

    Upewnij się, że uprawnienia pozwalają użytkownikowi na odczytywanie i wykonywanie plików w tym katalogu.

Krok 4: Test pliku wykonywalnego w katalogu roboczym

  1. Upewnij się, że twoja aplikacja może być uruchomiona z tego katalogu roboczego. Możesz to sprawdzić, przełączając się na użytkownika i przechodząc do katalogu:
    sudo -u myuser bash
    cd /etc/systemd/myapp
    /usr/bin/myapp
    Sprawdź, czy działa bez żadnych błędów. Jeśli się nie powiedzie, rozwiąż problemy z samą aplikacją.

Krok 5: Przeładuj systemd i uruchom usługę

  1. Po upewnieniu się, że katalog roboczy istnieje i jest poprawnie skonfigurowany, przeładuj konfigurację systemd:
    sudo systemctl daemon-reload
  2. Spróbuj ponownie uruchomić usługę:
    sudo systemctl start myapp.service

Krok 6: Sprawdź status

  1. Sprawdź status usługi, aby sprawdzić, czy została pomyślnie uruchomiona:
    sudo systemctl status myapp.service

Krok 7: Przejrzyj dzienniki w poszukiwaniu dodatkowych błędów

Jeśli usługa nadal nie uruchamia się, przejrzyj dzienniki w poszukiwaniu dodatkowych informacji:

journalctl -u myapp.service

Krok 8: (Opcjonalnie) Zatrzymanie i wyłączenie usługi

Jeśli kiedykolwiek zajdzie potrzeba zatrzymania usługi lub uniemożliwienia jej uruchomienia podczas rozruchu, można użyć następujących poleceń:

  • Aby zatrzymać usługę:
    sudo systemctl stop myapp.service
  • Aby wyłączyć uruchamianie usługi przy starcie systemu:
    sudo systemctl disable myapp.service

Wnioski

Używanie systemd do uruchamiania usług Linuksa przy starcie systemu jest prostym procesem, który zwiększa niezawodność systemu i zarządzanie nim. Tworząc plik jednostki usługi, można zdefiniować sposób uruchamiania aplikacji i zapewnić jej automatyczne uruchamianie wraz z systemem. Metoda ta nie tylko upraszcza zarządzanie usługami, ale także zapewnia potężne funkcje kontrolowania ich zachowania, czyniąc systemd niezbędnym narzędziem do nowoczesnej administracji systemem Linux.

Dzięki tym krokom można skutecznie skonfigurować i zarządzać własnymi usługami, poprawiając ogólną funkcjonalność środowiska Linux. W przypadku napotkania jakichkolwiek problemów, przeglądanie dzienników za pomocą journalctl może dostarczyć pomocnych informacji na temat tego, co może być nie tak.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills