So fügen Sie CentOS7 systemd benutzerdefinierte Systemdienste hinzu

So fügen Sie CentOS7 systemd benutzerdefinierte Systemdienste hinzu

systemd:

Das Service-Systemctl-Skript von CentOS 7 ist gespeichert unter: /usr/lib/systemd/, unterteilt in System (System) und Benutzer (Benutzer), nämlich: /usr/lib/systemd/system, /usr/lib/systemd/user

Jeder Dienst endet mit .service und ist im Allgemeinen in drei Teile unterteilt: [Unit], [Service] und [Install]. Nehmen wir nginx als Beispiel, der spezifische Inhalt ist wie folgt:

Erstellen Sie einen Dienst:

Erstellen Sie die Datei nginx.service unter /usr/lib/systemd/system mit folgendem Inhalt (je nach Anwendungsanforderungen kann sie auch unter /usr/lib/systemd/usr erstellt werden):

[Einheit]
Beschreibung=nginx – Hochleistungs-Webserver
Dokumentation=http://nginx.org/en/docs/
Nach=Netzwerk.Ziel Remote-FS.Ziel NSS-Lookup.Ziel
 
[Service]
Typ=Forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Installieren]
WantedBy=Mehrbenutzer.Ziel

[Einheit]
Beschreibung: Eine kurze Beschreibung des Dienstes
Dokumentation: Servicedokumentation

After=: Abhängigkeit. Starten Sie die benutzerdefinierte Diensteinheit erst, nachdem der abhängige Dienst gestartet wurde.

[Service]
Typ: Starttyp einfach, Forking, Oneshot, Benachrichtigung, Dbus

Typ=einfach (Standard): systemd geht davon aus, dass der Dienst sofort gestartet wird. Der Servicevorgang wird nicht aufgespalten. Wenn der Dienst andere Dienste starten soll, verwenden Sie diese Startart nicht, es sei denn, der Dienst ist Socket-aktiviert. Typ=forking: systemd betrachtet den Dienst als erfolgreich gestartet, wenn sich der Dienstprozess verzweigt und der übergeordnete Prozess beendet wird. Verwenden Sie für reguläre Daemons diese Startart, es sei denn, Sie sind sicher, dass diese Startmethode Ihren Anforderungen nicht entspricht. Wenn Sie diesen Starttyp verwenden, sollten Sie auch PIDFile= angeben, damit systemd den Hauptprozess des Dienstes verfolgen kann. Type=oneshot: Diese Option eignet sich für Dienste, die nur eine Aufgabe ausführen und dann sofort beendet werden. Möglicherweise müssen Sie auch RemainAfterExit=yes festlegen, damit systemd den Dienst auch nach dem Beenden des Dienstprozesses noch als aktiv betrachtet. Type=notify: Gleich wie Type=simple, gibt aber an, dass der Dienst ein Signal an systemd sendet, wenn er bereit ist. Die Implementierung dieser Benachrichtigung wird von libsystemd-daemon.so bereitgestellt. Typ=dbus: Wenn systemd auf diese Weise gestartet wird, betrachtet es den Dienst als bereit, wenn der angegebene BusName auf dem DBus-Systembus erscheint.

PIDFile: PID-Dateipfad
ExecStartPre: Was vor dem Start zu tun ist, im obigen Beispiel ist es, die Konfigurationsdatei -t zu testen
ExecStart: Starten
ExecReload: Neu laden
ExecStop: Stopp
PrivateTmp: True bedeutet, dem Dienst unabhängigen temporären Speicherplatz zuzuweisen

[Installieren]

WantedBy: Der Benutzermodus für die Dienstinstallation. Wörtlich bedeutet es: Wer möchte diesen Dienst nutzen? Das im obigen Text verwendete Ziel ist: multi-user.target, was bedeutet, dass das Verzeichnis, das diesen Dienst verwenden möchte, ein Mehrbenutzerverzeichnis ist. "Das oben Gesagte ist alles mein persönliches Verständnis und meine Vermutung. Wenn etwas falsch ist, geben Sie mir bitte Ihren Rat." Jedes .target ist eigentlich eine Sammlung von Links zu unseren Unit-Dateien. Wenn wir ausführen:

$ sudo systemctl aktiviere nginx.service

Im Verzeichnis /etc/systemd/system/multi-user.target.wants/ wird ein neuer Link zur Datei /usr/lib/systemd/system/nginx.service erstellt.

Bedienungsservice:

#Starten Sie den Dienst$ sudo systemctl start nginx.service

#Protokoll anzeigen $ sudo journalctl -f -u nginx.service
-- Protokolle beginnen am Donnerstag, 25.06.2015, 17:32:20 CST. --
25. Juni 10:28:24 Leco.lan systemd[1]: Starte nginx - Hochleistungs-Webserver...
Jun 25 10:28:24 Leco.lan nginx[7976]: nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist ok
Jun 25 10:28:24 Leco.lan nginx[7976]: nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test ist erfolgreich
25. Juni 10:28:24 Leco.lan systemd[1]: Nginx gestartet - Hochleistungs-Webserver.

#Neustart$ sudo systemctl restart nginx.service

#Neu laden $ sudo systemctl reload nginx.service

#Stopp$ sudo systemctl stop nginx.service

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So fügen Sie benutzerdefinierte Systemdienste zu systemd hinzu und legen den benutzerdefinierten Start fest
  • So konfigurieren Sie einen HTTP/HTTPS-Proxy in Docker
  • Detaillierte Erklärung zum Einrichten eines Proxys für Docker
  • Detaillierte Erklärung der Docker-Netzwerk-Proxy-Einstellungen
  • Einrichten eines Docker-Proxys unter CentOS 7 (Konfiguration der Umgebungsvariablen des Systemd-Dienstes unter Linux)

<<:  Lösung für den Initialisierungsfehler bei der Installation von mysql5.7 aus einem RPM-Paket in centos6.5

>>:  VUE implementiert einen Beispielcode für das Spiel Flappy Bird

Artikel empfehlen

Sieben Möglichkeiten zur Implementierung der Array-Deduplizierung in JS

Inhaltsverzeichnis 1. Verwenden von Set()+Array.f...

Detailliertes Tutorial zur Installation von MySQL 8.0.13 (rpm) auf Centos7

yum oder rpm? Die Yum-Installationsmethode ist se...

MySQL-Datenbankoperationen (Erstellen, Auswählen, Löschen)

MySQL-Datenbank erstellen Nachdem wir uns beim My...

Vue+Element UI realisiert die Kapselung von Dropdown-Menüs

In diesem Artikelbeispiel wird der spezifische Co...

Erste Schritte mit den JavaScript-Grundlagen

Inhaltsverzeichnis 1. Wo man JavaScript schreibt ...

Detaillierte Erklärung asynchroner Iteratoren in nodejs

Inhaltsverzeichnis Vorwort Was sind asynchrone It...

Zusammenfassung verschiedener Methoden für Vue zum Erreichen dynamischer Stile

Inhaltsverzeichnis 1. Ternäres Operatorurteil 2. ...

Detaillierte Erklärung gängiger Docker Compose-Befehle

1. Die Verwendung von Docker Compose ist der Verw...

So behandeln Sie den vom Linux-System gemeldeten Fehler tcp_mark_head_lost

Problembeschreibung Kürzlich meldete ein Host die...

Anzeigemodus von Elementen in CSS

In CSS werden Element-Tags entsprechend den unter...