Jak tworzyć usługi użytkownika i zarządzać nimi w systemie Linux

Jak Tworzyc Uslugi Uzytkownika I Zarzadzac Nimi W Systemie Linux



Zwykły użytkownik Linuksa może utworzyć niestandardową usługę systemową. Chociaż usługami systemowymi zarządzają głównie administratorzy systemu za pomocą polecenia systemctl. Tego samego polecenia można również użyć do zarządzania usługami specyficznymi dla użytkownika; wszystko czego potrzebujesz to: -użytkownik flaga.

W tym przewodniku omówię, jak utworzyć usługę specyficzną dla użytkownika w systemie Linux i jak nią zarządzać za pomocą systemctl.

Powód posiadania normalnej obsługi użytkownika

Zwykła usługa użytkownika różni się od usługi systemowej. Zwykła usługa użytkownika jest zorientowana na zalogowanie się użytkownika. Usługa ta będzie działać tylko w sesji użytkownika, który ją utworzył.







Jak utworzyć normalną usługę użytkownika

Usługi specyficzne dla użytkownika w systemie Linux są umieszczone w pliku ~/.config/systemd/user informator. Jeśli ten katalog nie istnieje, można go utworzyć.

mkdir -P ~ / .konfiguracja / systemowy / użytkownik

The -P flaga służy do tworzenia katalogu nadrzędnego, jeśli jest to wymagane. The ~ wskazuje katalog domowy użytkownika lokalnego i jest odpowiednikiem /dom/użytkownik podczas gdy kropka przed plikiem konfiguracyjnym powoduje jego ukrycie. Stwórzmy prosty plik skryptu bash, który będzie zapisywał użycie pamięci w tekście co 30 minut. Tworzę skrypt o nazwie skrypt.sh .

#! /bin/bash

chwila PRAWDA

Do

bezpłatny -M >> / dom / użytkownik / mójplik.txt

spać 1800

zrobione

Skrypt ten można utworzyć w dowolnym miejscu, ale upewnij się, że ścieżka określona w skrypcie jest ścieżką bezwzględną.

Stwórzmy teraz usługę, która wykona powyższy skrypt w tle. Uruchom dowolny edytor tekstu, taki jak Nano lub Vim i wklej w nim podane poniżej linie.

[ Jednostka ]

Opis =Moja usługa

[ Praca ]

Typ =proste

ExecStart = / kosz / grzmotnąć / dom / użytkownik / skrypt.sh

Uruchom ponownie =w przypadku awarii

[ zainstalować ]

Poszukiwany przez =domyślny cel

W sekcji [Jednostka] plik Opis dyrektywa zawiera po prostu nazwę usługi. Pamiętaj, że nie powinien on mieć więcej niż 80 znaków.

Sekcja [Service] zawiera trzy ważne dyrektywy. Po pierwsze, Typ ; który jest prosty , Następnie ExecStart zawierający plik wykonywalny naszego niestandardowego skryptu. Usługa zostanie uruchomiona ponownie dopiero w przypadku awarii.

Sekcja [Instaluj] zawiera plik Poszukiwany przez dyrektywa, czyli domyślny.cel , co oznacza, że ​​usługa zostanie włączona w stanie systemu, w którym zostanie osiągnięta na domyślnym poziomie działania, który zwykle jest multi-user.target lub graphal.target.

Teraz zapisz plik w formacie ~/.config/systemd/user katalog o dowolnej nazwie; Nazywam to mojausługa.usługa .

Jak zarządzać normalną obsługą użytkownika

Aby zarządzać normalną usługą użytkownika, używana jest komenda systemctl z -użytkownik flaga. The -użytkownik flaga oznacza, że ​​użytkownik kontaktuje się z menadżerem serwisu, a nie z systemem.

Po utworzeniu pliku usługi specyficznego dla użytkownika pierwszym kluczowym krokiem jest ponowne załadowanie plików konfiguracyjnych systemd.

systemctl --użytkownik przeładowanie demona

Spowoduje to zastosowanie zmian.

Aby dowiedzieć się, czy usługa jest uruchomiona, użyj systemctl z rozszerzeniem -użytkownik flaga i opcja.

systemctl --użytkownik status [ Nazwa serwisu ]

Inne polecenia służące do zarządzania normalną obsługą użytkownika są wymienione poniżej:

systemctl --użytkownik początek [ Nazwa serwisu ]

systemctl --użytkownik włączać [ Nazwa serwisu ]

systemctl --użytkownik zatrzymywać się [ Nazwa serwisu ]

systemctl --użytkownik wyłączyć [ Nazwa serwisu ]

systemctl --użytkownik uruchom ponownie [ Nazwa serwisu ]

Jak utworzyć normalną usługę użytkownika z uprawnieniami administratora systemu

Istnieje wiele usług tworzonych przez użytkownika, ale ich uruchomienie wymaga uprawnień administratora. Takie usługi można utworzyć dodając plik Użytkownik dyrektywę do sekcji [Usługa].

The Użytkownik dyrektywy można użyć do podania nazwy użytkownika, którego uprawnienia są wymagane do uruchomienia usługi, np Admin . Jeśli więc zwykły użytkownik chce stworzyć usługę wymagającą uprawnień administratora, po prostu dodaj plik Użytkownik=administrator w sekcji [Service] wykona zadanie. Jednak ta usługa pozostanie aktywna tak długo, jak długo administrator będzie aktywny. Należy pamiętać, że administrator nie może bezpośrednio kontrolować tej usługi.

Wniosek

Zwykły użytkownik może również utworzyć usługę systemową, ale należy ją umieścić ~/.config/systemd/user informator. Usługa ta działa tak długo, jak zalogowany jest użytkownik, który ją utworzył. Usługami tymi można również zarządzać za pomocą komendy systemctl, ale za pomocą -użytkownik flaga. Co mówi systemowi, że usługa jest wywoływana przez użytkownika, a nie system. W tym przewodniku stworzyłem niestandardową usługę normalnego użytkownika i wspomniałem o poleceniach systemctl do zarządzania nią. Ponadto podkreśliłem również metodę tworzenia usługi wymagającej uprawnień administracyjnych.