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żytkownikThe -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/bashchwila 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 demonaSpowoduje 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.