Hoe u gebruikersservices op Linux kunt maken en beheren

Hoe U Gebruikersservices Op Linux Kunt Maken En Beheren



Een normale gebruiker van Linux kan een aangepaste systemd-service maken. Terwijl systemd-services grotendeels worden beheerd door systeembeheerders met behulp van de opdracht systemctl. Hetzelfde commando kan ook worden gebruikt om gebruikersspecifieke services te beheren; alles wat je nodig hebt is een -gebruiker vlag.

In deze handleiding zal ik bespreken hoe je een gebruikersspecifieke service op Linux kunt maken en hoe je deze kunt beheren met systemctl.

Reden voor het hebben van een normale gebruikersservice

De normale gebruikersservice verschilt van de systeemservice. De normale gebruikersservice is gebruikersgericht. Deze dienst werkt alleen in de sessie van de gebruiker die deze heeft aangemaakt.







Hoe u een normale gebruikersservice kunt maken

De gebruikersspecifieke services op Linux worden in de ~/.config/systemd/user map. Als deze map niet aanwezig is, kan deze worden aangemaakt.

mkdir -P ~ / .config / gesystematiseerd / gebruiker

De -P flag wordt gebruikt om indien nodig een bovenliggende map te maken. De ~ geeft de thuismap van de lokale gebruiker aan en is gelijk aan /home/gebruiker terwijl de punt vóór het configuratiebestand het verborgen maakt. Laten we een eenvoudig bash-scriptbestand maken dat het geheugengebruik elke 30 minuten naar een tekst schrijft. Ik maak het script met de naam van script.sh .

#! /bin/bash

terwijl WAAR

Doen

vrij -M >> / thuis / gebruiker / mijnbestand.txt

slaap 1800

klaar

Dit script kan overal worden gemaakt, maar zorg ervoor dat het pad dat in het script is opgegeven een absoluut pad is.

Laten we nu een service maken die het bovenstaande script op de achtergrond uitvoert. Start een teksteditor, zoals Nano of Vim, en plak de onderstaande regels erin.

[ Eenheid ]

Beschrijving =Mijn dienst

[ Dienst ]

Type =eenvoudig

ExecStart = / bak / bashen / thuis / gebruiker / script.sh

Herstarten = bij falen

[ Installeren ]

GezochtDoor = standaard.doel

In de sectie [Eenheid] wordt de Beschrijving richtlijn bevat eenvoudigweg de naam van de service. Houd er rekening mee dat het niet meer dan 80 tekens mag bevatten.

De sectie [Service] bevat de drie belangrijke richtlijnen. In de eerste plaats de Type ; dat is eenvoudig , Dan ExecStart met het uitvoerbare bestand van ons aangepaste script. De service wordt pas opnieuw opgestart als er een storing is.

De sectie [Installeren] bevat de GezochtDoor richtlijn dat is standaard.doel , wat impliceert dat de service wordt ingeschakeld in de systeemstatus wanneer deze wordt bereikt op het standaardrunniveau, dat normaal gesproken multi-user.target of graphical.target is.

Sla het bestand nu op in de ~/.config/systemd/user map met elke naam; Ik geef het een naam mijnservice.service .

Hoe u een normale gebruikersservice beheert

Om de normale gebruikersservice te beheren, wordt de opdracht systemctl gebruikt met de -gebruiker vlag. De -gebruiker vlag betekent dat de gebruiker contact opneemt met de servicemanager en niet met het systeem.

Na het aanmaken van het gebruikersspecifieke servicebestand is de eerste cruciale stap het opnieuw laden van de systeemconfiguratiebestanden.

systeemctl --gebruiker daemon-herladen

Hiermee worden de wijzigingen toegepast.

Om te weten of de service actief is of niet, gebruikt u systemctl, met de -gebruiker vlag en optie.

systeemctl --gebruiker toestand [ servicenaam ]

Andere opdrachten om de normale gebruikersservice te beheren worden hieronder vermeld:

systeemctl --gebruiker begin [ servicenaam ]

systeemctl --gebruiker inschakelen [ servicenaam ]

systeemctl --gebruiker stop [ servicenaam ]

systeemctl --gebruiker uitzetten [ servicenaam ]

systeemctl --gebruiker herstarten [ servicenaam ]

Hoe u een normale gebruikersservice kunt maken met systeembeheerdersrechten

Er zijn veel services die een gebruiker maakt, maar hiervoor is beheerderstoestemming vereist. Dergelijke services kunnen worden gemaakt door een Gebruiker richtlijn naar de sectie [Service].

De Gebruiker richtlijn kan worden gebruikt om de naam te vermelden van de gebruiker wiens machtigingen vereist zijn om de service uit te voeren, zoals beheerder . Dus als een normale gebruiker een service wil maken waarvoor beheerdersrechten nodig zijn, voegt u eenvoudigweg de Gebruiker=beheerder in de sectie [Service] zal het werk doen. Deze service blijft echter actief zolang de beheerder actief is. Houd er rekening mee dat deze service niet rechtstreeks door de beheerder kan worden beheerd.

Conclusie

De normale gebruiker kan ook een systemd-service maken, maar deze moet er wel in worden geplaatst ~/.config/systemd/user map. Deze service werkt zolang de gebruiker die deze heeft gemaakt is ingelogd. Deze services worden ook beheerd via de opdracht systemctl, maar dan met -gebruiker vlag. Dit vertelt het systeem dat de service wordt aangeroepen door de gebruiker, niet door het systeem. In deze handleiding heb ik een aangepaste normale gebruikersservice gemaakt en systemctl-opdrachten genoemd om deze te beheren. Bovendien heb ik ook een methode benadrukt om een ​​dienst te creëren waarvoor beheerdersrechten vereist zijn.