Jak utworzyć plik usługi w systemie Linux

Jak Utworzyc Plik Uslugi W Systemie Linux



Systemd init system jest obecnie częścią prawie wszystkich dystrybucji Linuksa. Jako administrator lub programista tworzysz usługi, którymi może zarządzać system. Na przykład, jeśli chcesz uruchamiać usługi podczas rozruchu lub chcesz ręcznie nimi sterować, możesz to zrobić za pomocą niestandardowego pliku usługi.

W tym samouczku omówię, jak utworzyć plik usługi systemowej w systemie Linux.







Co to jest plik serwisowy

Zanim przejdziemy dalej, zrozummy, czym jest plik usługi systemowej i jak jest tworzony w systemie Linux.



Plik usługi systemowej zawiera instrukcje umożliwiające systemd zarządzanie usługą. Zwykle zawiera trzy sekcje:



  • Jednostka
  • Praca
  • zainstalować

The Jednostka Sekcja zawiera podstawowe informacje o usłudze takie jak krótki opis, strony dokumentacji oraz ścieżkę do zależności. The zainstalować sekcja jest opcjonalna, ale zazwyczaj zarządza stanem systemu, w którym usługa powinna być włączona.





The Praca sekcja jest zwykle umieszczona pomiędzy sekcją Jednostka i Instalacja. Zawiera przede wszystkim typ usługi i ścieżkę plików wykonywalnych, które zasadniczo są poleceniami do wykonania po wywołaniu usługi przez systemd.

Oto jak wygląda typowa struktura plików usługi.



[ Jednostka ]

Dyrektywa 1 =instrukcja

Dyrektywa2 =instrukcja



[ Praca ]

Dyrektywa 1 =instrukcja

Dyrektywa2 =instrukcja



[ zainstalować ]

Dyrektywa 1 =instrukcja

Dyrektywa2 =instrukcja

W tym przypadku dyrektywy są parametrami, które pobierają odpowiednie dane wejściowe. Na przykład Opis dyrektywa pobiera ciąg znaków z nazwą usługi. W podobny sposób, ExecStart uwzględnia pełną ścieżkę pliku wykonywalnego.

Typowy plik serwisowy usługa ssh podano poniżej.

Jak utworzyć plik usługi

Aby stworzyć usługę systemową, konieczne jest zrozumienie kluczowych dyrektyw. W tym przewodniku omówię podstawowe wytyczne, które mogą pomóc w stworzeniu w pełni funkcjonalnego pliku usługi.

Tworzenie pliku usługi obejmuje wiele kroków, zacznijmy od utworzenia pliku skryptu.

Notatka: Aby kontynuować metodę opisaną poniżej, musisz mieć uprawnienia roota.

1. Tworzenie skryptu

Początkowy krok polega na utworzeniu kodu, który zostanie wykonany w momencie rozpoczęcia działania usługi. Na potrzeby tego samouczka tworzę skrypt bash, który będzie przechowywać czas pracy systemu Linux i wykorzystanie pamięci.

Utwórzmy skrypt w bieżącym katalogu o nazwie mójscript.sh za pomocą edytora nano.

sudo nano mójscript.sh

Teraz dodaj do pliku poniższy skrypt i zapisz go naciskając ctrl+x i wtedy I .

#!/bin/bash

Echo '>>Oto czas działania Twojego systemu<<' > dom / samego siebie / mójplik.txt

czas pracy >> dom / samego siebie / mójplik.txt

Echo '>>Oto wykorzystanie pamięci w Twoim systemie<<' >> / dom / samego siebie / mójplik.txt

bezpłatny -M >> dom / samego siebie / mójplik.txt

spać 60

Skrypt zawiera kilka ciągów echa i czas pracy I bezpłatny polecenia.

The czas pracy polecenie w systemie Linux służy do wypisywania, jak długo system działa i ilu użytkowników jest podłączonych przy średnim obciążeniu systemu w ciągu ostatnich 1, 5 i 15 minut.

The bezpłatny polecenie służy do wydrukowania wykorzystania pamięci systemu, podczas gdy polecenie -M flaga służy do wydrukowania wyniku MB .

Aby zapisać informacje w pliku tekstowym, używamy specjalnych operatorów zwanych operatorami przekierowań. The > operator służy do wstawiania tekstu do wspomnianego pliku tekstowego. Jeśli jednak plik jeszcze nie istnieje, zostanie utworzony. Podczas >> operator służy do dołączania tekstu w pliku. The spać polecenie służy do utrzymania aktywności usługi przez minimalny czas jednej minuty.

Teraz spraw, aby skrypt był wykonywalny, przyznając niezbędne uprawnienia.

sudo chmod +x mójskrypt.sh

Skrypt ma teraz uprawnienia do wykonywania, przejdźmy do następnej sekcji.

Notatka: Aby plik usługi był wolny od błędów, użyj ścieżki bezwzględnej pliku w skrypcie bash.

2. Tworzenie pliku .service

Następnie utwórz plik usługi z rozszerzeniem .praca rozszerzenie. Plik usługi musi zostać utworzony w formacie /etc/systemd/system informator. Najpierw przejdź do tego katalogu za pomocą płyta CD Komenda.

płyta CD / itp / systemowy / system

Możesz utworzyć plik usługi w dowolnym katalogu, a mimo to później przenieść go do tego katalogu.

Tworzę plik usługi za pomocą mojausługa.usługa nazwa.

sudo nano mojausługa.usługa

Teraz dodaj następujące linie do pliku.

[ Jednostka ]

Opis =Moja usługa

[ Praca ]

Typ =proste

ExecStart = / kosz / grzmotnąć / dom / samego siebie / skrypt.sh

Uruchom ponownie =w przypadku awarii

[ zainstalować ]

Poszukiwany przez =wielu użytkowników.cel

Zauważ to [Jednostka], [Serwis], I [Zainstalować] Czy wielkość liter ma znaczenie . Plik usługi nie będzie działać, jeśli którykolwiek z nich zostanie podany niepoprawnie, na przykład [UNIT] lub [SERVICE].

Nazwa usługi jest określona jako Moja usługa w Opis dyrektywa z [Jednostka] Sekcja.

The Typ usługi jest prosty w [Praca] sekcja, która jest typem domyślnym. Rozwidlanie , jeden strzał , notyfikować , dbus i idle to tylko niektóre z innych typów.

Jeśli chcesz, aby usługa była specyficzna dla użytkownika, to Użytkownik Dyrektywa może być również używana z nazwą użytkownika. Użycie tej dyrektywy uzależni uprawnienia użytkownika usługi.

Podczas ExecStart dyrektywa zawiera pełną ścieżkę pliku wykonywalnego. W powyższym przykładzie plik skryptu mójscript.sh jest przechowywany w /dom/sam/ informator. Ta dyrektywa w rzeczywistości zarządza tym, co ma zostać wykonane, gdy usługa zostanie wywołana przez systemd. Jeśli pełna ścieżka polecenia nie zostanie określona, ​​automatycznie zostanie rozwiązana naprawa ścieżek bezwzględnych, takich jak /usr/local/bin , /usr/bin/, I /kosz . Używanie nazw plików wykonywalnych jest całkowicie w porządku, o ile znajdują się one w standardowych katalogach poleceń, jednak w przeciwnym razie należy podać ścieżkę bezwzględną. Należy pamiętać, że można również używać poleceń wielokrotnych oddzielonych średnikiem (;).

The [Zainstalować] sekcja jest opcjonalna; wskazuje jednak, w jaki sposób usługa jest włączona. The Poszukiwany przez dyrektywa przyjmuje pliki docelowe poziomu wykonawczego jako parametry. Różne pliki docelowe wskazywały różne poziomy działania systemu, np wyłączenie , ratunek , wielu użytkowników , graficzny , I ponowne uruchomienie .

The cel wielu użytkowników oznacza, że ​​usługa zostanie włączona, gdy system będzie w stanie zezwalającym na sesje niegraficzne wielu użytkowników.

3. Aktywacja Usługi

Aby aktywować usługę, najpierw załaduj ponownie konfiguracje systemowe za pomocą systemctl pożytek.

sudo przeładowanie demona systemctl

Następnie ponownie aktywuj usługę za pomocą systemctl polecenie z włączać .

sudo systemctl włączać mojausługa.usługa

Aby to sprawdzić, sprawdź status usługi za pomocą stan systemctl Komenda.

Usługa działa pomyślnie.

Teraz przeczytajmy plik tekstowy mójplik.txt usługa stworzona w /dom informator.

Jak utworzyć plik usługi systemowej dla zwykłego użytkownika

Procedura tworzenia pliku usługi dla zwykłego użytkownika jest podobna do metody tworzenia pliku usługi przez administratora. Jednak katalog, w którym zapisywany jest plik usługi dla zwykłych użytkowników, jest inny. Zwykli użytkownicy muszą umieszczać swoje pliki usług w formacie ~/.config/systemd/user . Katalog ten należy utworzyć przy użyciu pliku mkdir Komenda.

mkdir ~ / .konfiguracja / systemowy / użytkownik

Aby aktywować usługę przez zwykłego użytkownika -użytkownik polecenie jest wstawiane za pomocą systemctl zamiast sudo .

systemctl --użytkownik przeładowanie demona

systemctl --użytkownik włączać NAZWA-USŁUGI.usługa

systemctl --użytkownik status NAZWA-USŁUGI.usługa

The -użytkownik opcja służy do zarządzania plikami usług systemowych użytkownika.

Jak usunąć plik usługi

Aby usunąć plik usługi, należy najpierw zatrzymać usługę.

sudo systemctl stop NAZWA-USŁUGI.usługa

Sprawdź stan za pomocą stan systemctl polecenie, aby dowiedzieć się, czy usługa jest zatrzymana, czy nie. Następnie usuń plik usługi za pomocą rm Komenda.

sudo rm / itp / systemowy / system / NAZWA-USŁUGI.usługa

Teraz załaduj ponownie systemowy konfiguracja.

sudo przeładowanie demona systemctl

Wniosek

Niestandardowa usługa systemowa jest korzystna w różnych scenariuszach. W tym przewodniku dowiedzieliśmy się, jak utworzyć niestandardowy plik usługi systemowej dla administratora systemu i jak zwykli użytkownicy mogą utworzyć plik usługi. Ponadto widzimy również procedurę usuwania pliku usługi.