So erstellen und verwalten Sie Benutzerdienste unter Linux

So Erstellen Und Verwalten Sie Benutzerdienste Unter Linux



Ein normaler Linux-Benutzer kann einen benutzerdefinierten systemd-Dienst erstellen. Während systemd-Dienste größtenteils von Systemadministratoren mithilfe des Befehls systemctl verwaltet werden. Derselbe Befehl kann auch zum Verwalten benutzerspezifischer Dienste verwendet werden; Alles, was Sie brauchen, ist ein -Benutzer Flagge.

In dieser Anleitung beschreibe ich, wie man unter Linux einen benutzerspezifischen Dienst erstellt und wie man ihn mit systemctl verwaltet.

Grund für einen normalen Benutzerdienst

Der normale Benutzerdienst unterscheidet sich vom Systemdienst. Der normale Benutzerdienst ist auf den angemeldeten Benutzer ausgerichtet. Dieser Dienst funktioniert nur in der Sitzung des Benutzers, der ihn erstellt hat.







So erstellen Sie einen normalen Benutzerdienst

Die benutzerspezifischen Dienste unter Linux werden in der platziert ~/.config/systemd/user Verzeichnis. Wenn dieses Verzeichnis nicht vorhanden ist, kann es erstellt werden.

mkdir -P ~ / .config / systemd / Benutzer

Der -P Flag wird verwendet, um bei Bedarf ein übergeordnetes Verzeichnis zu erstellen. Der ~ gibt das Home-Verzeichnis des lokalen Benutzers an und entspricht /Heimanwender während der Punkt vor der Konfigurationsdatei sie versteckt. Erstellen wir eine einfache Bash-Skriptdatei, die alle 30 Minuten die Speichernutzung in einen Text schreibt. Ich erstelle das Skript mit dem Namen script.sh .

#! /bin/bash

während WAHR

Tun

frei -M >> / heim / Benutzer / meinedatei.txt

schlafen 1800

Erledigt

Dieses Skript kann überall erstellt werden. Stellen Sie jedoch sicher, dass der im Skript angegebene Pfad ein absoluter Pfad ist.

Erstellen wir nun einen Dienst, der das obige Skript im Hintergrund ausführt. Starten Sie einen beliebigen Texteditor wie Nano oder Vim und fügen Sie die unten angegebenen Zeilen ein.

[ Einheit ]

Beschreibung =Mein Service

[ Service ]

Typ =einfach

ExecStart = / Behälter / bash / heim / Benutzer / script.sh

Neu starten =bei Fehler

[ Installieren ]

Gesucht von =default.target

Im Abschnitt [Einheit] wird die Beschreibung Die Direktive enthält lediglich den Namen des Dienstes. Beachten Sie, dass es nicht mehr als 80 Zeichen umfassen sollte.

Der Abschnitt [Service] enthält die drei wichtigen Anweisungen. Erstens, die Typ ; welches ist einfach , Dann ExecStart Enthält die ausführbare Datei unseres benutzerdefinierten Skripts. Der Dienst wird nur dann neu gestartet, wenn ein Fehler auftritt.

Der Abschnitt [Installieren] enthält die Gesucht von Richtlinie, die ist default.target , was bedeutet, dass der Dienst im Systemstatus aktiviert wird, wenn er auf der Standardausführungsebene erreicht wird, die normalerweise multi-user.target odergraphical.target ist.

Speichern Sie nun die Datei im ~/.config/systemd/user Verzeichnis mit beliebigem Namen; Ich benenne es myservice.service .

So verwalten Sie einen normalen Benutzerdienst

Um den normalen Benutzerdienst zu verwalten, wird der Befehl systemctl mit verwendet -Benutzer Flagge. Der -Benutzer Flag bedeutet, dass der Benutzer den Dienstmanager und nicht das System kontaktiert.

Nach dem Erstellen der benutzerspezifischen Servicedatei besteht der erste entscheidende Schritt darin, die Systemd-Konfigurationsdateien neu zu laden.

systemctl --Benutzer Daemon-Neuladen

Dadurch werden die Änderungen übernommen.

Um festzustellen, ob der Dienst ausgeführt wird oder nicht, verwenden Sie systemctl mit dem -Benutzer Flagge und Option.

systemctl --Benutzer Status [ Dienstname ]

Weitere Befehle zur Verwaltung des normalen Benutzerdienstes sind unten aufgeführt:

systemctl --Benutzer Start [ Dienstname ]

systemctl --Benutzer aktivieren [ Dienstname ]

systemctl --Benutzer stoppen [ Dienstname ]

systemctl --Benutzer deaktivieren [ Dienstname ]

systemctl --Benutzer Neustart [ Dienstname ]

So erstellen Sie einen normalen Benutzerdienst mit Systemadministratorberechtigungen

Es gibt viele Dienste, die ein Benutzer erstellt, für deren Ausführung jedoch eine Administratorberechtigung erforderlich ist. Solche Dienste können durch Hinzufügen eines erstellt werden Benutzer -Anweisung in den Abschnitt [Service] einfügen.

Der Benutzer Mit der Direktive kann der Name des Benutzers angegeben werden, dessen Berechtigungen zum Ausführen des Dienstes erforderlich sind, z. B Administrator . Wenn also ein normaler Benutzer einen Dienst erstellen möchte, der Administratorrechte erfordert, fügt er einfach die hinzu Benutzer=admin im Abschnitt [Service] erledigt die Aufgabe. Dieser Dienst bleibt jedoch aktiv, solange der Administrator aktiv ist. Beachten Sie, dass dieser Dienst nicht direkt vom Administrator gesteuert werden kann.

Abschluss

Der normale Benutzer kann auch einen systemd-Dienst erstellen, dieser muss jedoch darin platziert werden ~/.config/systemd/user Verzeichnis. Dieser Dienst läuft, solange der Benutzer, der ihn erstellt hat, angemeldet ist. Diese Dienste werden auch über den Befehl systemctl verwaltet, jedoch mit -Benutzer Flagge. Dies teilt dem System mit, dass der Dienst vom Benutzer und nicht vom System aufgerufen wird. In diesem Handbuch habe ich einen benutzerdefinierten normalen Benutzerdienst erstellt und systemctl-Befehle zu seiner Verwaltung erwähnt. Darüber hinaus habe ich auch eine Methode zum Erstellen eines Dienstes hervorgehoben, für den Administratorrechte erforderlich sind.