Usługi w systemie Linux uruchamiają się natychmiast po uruchomieniu lub ponownym uruchomieniu systemu. Oto, jak możesz utworzyć automatycznie uruchamianą usługę systemową na komputerze z systemem Linux.

systemd jest menedżerem usług dla wielu znanych dystrybucji Linuksa. Usługa to jednostka programu, która zazwyczaj działa w tle. Usługi z natury uruchamiają się automatycznie zaraz po uruchomieniu systemu i mogą działać bez nadzoru.

Jeśli musisz utworzyć automatycznie uruchamiane zadanie lub program, który będzie wykonywany przy każdym uruchomieniu lub ponownym uruchomieniu systemu, możesz rozważyć utworzenie nowej usługi. Nauczmy się, jak utworzyć nową, niestandardową usługę systemową w systemie Linux.

Krok 1: Tworzenie pliku usługi

Aby utworzyć nowy plik usługi systemd, należy wykonać kilka kroków. Pierwszym z nich jest utworzenie pliku jednostkowego dla usługi. Przed utworzeniem pliku usługi należy zapoznać się z jego strukturą.

Przestudiujmy plik usługi, pobierając prawdziwy, działający plik usługi z systemu Linux. Poniżej możesz zobaczyć plik usługi dla usługi demona vmtools.

instagram viewer

Ta konkretna usługa może nie być dostępna w twoim systemie, chyba że używasz również systemu Linux na VMware z zainstalowanymi narzędziami VMware. Usługa, o której mowa, nie jest ważna, ponieważ wszystkie usługi, a raczej pliki jednostek usług, mają tę samą podstawową strukturę z pewnymi dostosowaniami zgodnie z wymaganiami.

Wszystkie pliki usług systemowych muszą mieć trzy sekcje: [Praca], [Jednostka], I [Zainstalować]i kilka parametrów w każdej sekcji. Oto, co zawiera każda sekcja i dlaczego są ważne:

1. Jednostka

The Jednostka sekcja zawiera ważne metadane, takie jak opis i zależności usługi. Ma trzy parametry: Opis, Zanim, I Po. Jak sugeruje to samo, Opis parametr zapewnia pewien kontekst usługi i jej działanie.

The Zanim I Po parametry określają warunki, jakie muszą zostać spełnione, aby usługa została wykonana. Na przykład, jeśli uruchamiasz usługę serwera WWW, chcesz, aby była uruchamiana dopiero po przejściu usługi sieciowej do trybu online. Więc ustawisz wartość Po parametr do usługi sieciowej.

2. Praca

The Praca sekcja zawiera dwa obowiązkowe parametry: ExecStart, Typi kilka innych opcjonalnych parametrów, takich jak Wykonaj ponownie, i więcej.

ExecStart definiuje polecenie, które ma zostać wykonane, gdy usługa zostanie uruchomiona, podczas gdy Typ parametr określa typ procesu do odrodzenia.

3. zainstalować

Ta sekcja i jej dane są wywoływane za każdym razem, gdy włączasz lub wyłączasz usługę polecenie systemctl.

Ma parę parametrów. Jednym z powszechnych i koniecznych jest Poszukiwany przez. The Poszukiwany przez parametr określa jednostki docelowe, które powinny być uruchamiane, gdy usługa jest włączona. Wartość domyślna to wielu użytkowników.cel.

Wspomniane tutaj parametry nie są jedynymi parametrami, które można ustawić w pliku jednostki. Możesz uzyskać pełną listę parametrów z oficjalna dokumentacja systemd.exec lub wpisując man systemd.exec w terminalu.

Plik systemowej jednostki usługowej zawsze kończy się na „.praca" i musi być przechowywany w /etc/systemd/system/ informator. Utwórz plik usługi za pomocą polecenia dotykowego z podwyższonymi uprawnieniami poprzez poprzedzenie go przedrostkiem Sudo Komenda:

sudo touch /etc/systemd/system/.praca 

Teraz, po utworzeniu pliku usługi, przejdźmy do wypełnienia go niezbędną składnią, aby usługa była poprawna i działała.

Krok 2: Konfigurowanie pliku usługi

W ramach demonstracji utworzysz przykładową usługę, która jest wykonywana Nmap, aby przeskanować porty na twoim komputerze i przechowuj dane wyjściowe w pliku co trzydzieści sekund. Aby wykonać to zadanie, wykonaj następujące czynności dotyczące struktury pliku jednostki usług:

[Jednostka]
Description=Demonstracja niestandardowej usługi nmap.
After=sieć.cel

[Praca]
Typ=prosty
Użytkownik=root
ExecStart=/usr/bin/nmap -sS -O -oN /home//results.txt host lokalny
Uruchom ponownie = zawsze
Uruchom ponownie Sec=30

[Zainstalować]
WantedBy=multi-user.target

Chociaż wymienione tutaj parametry zostały wyjaśnione wcześniej, przejrzyjmy, jak wpływają one na naszą nowo utworzoną usługę, a także zbadajmy nowe wprowadzone w tej jednostce: Uruchom ponownie, Uruchom ponownie sek, I Użytkownik.

Oto, co oznaczają parametry w poszczególnych sekcjach:

  • Opis: Czytelny dla człowieka tekst opisujący funkcjonalności usługi.
  • After=sieć.cel: Dyktowanie systemd, od którego ta usługa jest zależna sieć.cel i powinien rozpocząć się dopiero po sieć.cel usługa została uruchomiona. Zauważ to Po nie jest używany do ustanowienia żadnego bezpośredniego związku zależności, po prostu działa jako wyzwalacz.
  • Typ=prosty: Istnieje wiele rodzajów usług. Jednak usługa w tej demonstracji jest regularnym procesem i dlatego tak ją deklarujemy. Możesz znaleźć wszystkie różne wartości tego na oficjalnej stronie dokumentacji, do której link był wcześniej.
  • Uruchom ponownie = zawsze: Oznacza to, że za każdym razem, gdy usługa kończy działanie, powinna zawsze uruchamiać się ponownie.
  • Uruchom ponownie Sec=30: Ustawia to odstęp między każdym uruchomieniem usługi na 30 sekund.
  • Użytkownik=root: To definiuje, że usługa będzie działać jako użytkownik root. W takim przypadku jest to krok obowiązkowy, ponieważ Nmap nie będzie mógł działać bez uprawnień roota.
  • ExecStart: Ta dyrektywa zawiera bezwzględną ścieżkę do programu, który ma zostać wykonany, wraz ze wszystkimi wymaganymi flagami lub argumentami niezbędnymi do prawidłowego działania programu.
  • Poszukiwany przez=multi-user.target: Ten parametr w pliku usługi określa, który element docelowy powinien obejmować usługę lub „chcieć” tę usługę. Gdy usługa jest uwzględniona w celu, oznacza to, że usługa powinna zostać uruchomiona, gdy system osiągnie ten cel podczas procesu rozruchu. W takim przypadku usługa powinna zostać uruchomiona, gdy system wejdzie w tryb wielu użytkowników. Tryb wielu użytkowników to stan, w którym system jest w pełni uruchomiony i umożliwia wielu użytkownikom zalogowanie się i korzystanie z systemu.

Krok 3: Włączanie i uruchamianie usługi

Teraz, gdy utworzyłeś plik jednostki, jedyne kroki, które pozostały do ​​​​aktywacji usługi, to włączenie i uruchomienie. Możesz włączyć i uruchomić usługę za pomocą polecenia systemctl.

Oto jak używać systemctl do włączania, uruchamiania i sprawdzania stanu usługi:

sudo systemctl włącz .praca
sudo systemctl start .praca
Sudo systemctl stan .praca

Teraz Twoja niestandardowa usługa powinna już działać! W takim przypadku powinieneś zobaczyć skanowanie Nmapa uruchamiane co trzydzieści sekund, a dane wyjściowe są zapisywane w pliku wyniki.txt plik w katalogu domowym.

Konfigurowanie usługi systemowej w systemie Linux jest łatwe!

Konfigurowanie niestandardowej usługi od podstaw może początkowo wydawać się zniechęcające, ale jest to dość łatwy sposób stworzyć samowykonujący się, nienadzorowany proces, który będzie wykonywał za Ciebie powtarzalne zadania i usprawniał Twoje działania wydajność.

W usłudze demonstracyjnej ledwo poznaliśmy sposób konfigurowania i konfigurowania usługi. Aby dowiedzieć się wszystkiego o tym, jak dostosować swoją usługę, zalecamy przejrzenie oficjalnej dokumentacji, do której link znajduje się w notatce.

Jeśli konfigurowanie i utrzymywanie usługi wydaje ci się zbyt dużym zadaniem, rozważ sprawdzenie alternatywnego sposobu automatyzacji powtarzalnych zadań w systemie Linux.