GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So fügen Sie ein benutzerdefiniertes Skript zu systemd in CentOS/RHEL 7 hinzu

Die systemd-Funktion ersetzt die älteren System-V-Initialisierungsskripte aus früheren Versionen. Der Systemd ist eine ereignisgesteuerte Einrichtung, die es ermöglicht, nicht abhängige Subsysteme parallel zu starten, zu steuern oder zu stoppen. Hier erklären wir, wie man ein benutzerdefiniertes Skript zur systemd-Einrichtung hinzufügt.

1. Schreiben und debuggen Sie das benutzerdefinierte Skript

Typischerweise wird ein systemd-Skript als Shell-Skript geschrieben. Beginnen Sie mit dem Schreiben Ihres benutzerdefinierten Skripts unter Verwendung der üblichen Konventionen. Wir nennen unser Skript my-custom-script.sh und es ist unkompliziert:

#!/bin/sh
echo I am a custom script

2. Das Skript muss ausführbar sein

Machen wir das Skript ausführbar:

# chmod 0755 my-custom-script.sh

3. Beschreiben Sie das benutzerdefinierte Skript für systemd

Wenn das Skript manuell geschrieben und getestet wurde, kann das Skript dem systemd-System beschrieben werden. Dazu wird eine [name].service-Datei benötigt. Die Syntax verwendet das für Konfigurationsdateien übliche INI-Format. Um unser Beispiel fortzusetzen, benötigen wir eine my-custom-script.service-Datei. Die ausführbare Datei wird bei jedem Start des Dienstes genau einmal ausgeführt. Der Dienst wird erst gestartet, wenn die Netzwerkschicht hochgefahren und stabil ist:

# This is my-custom-script.service, which describes the my-custom-script.sh file
[Unit]
Description=This is executed on shutdown or reboot
DefaultDependencies=no
Wants=network-pre.target                                                                   # (if network is required before running the script)
Before=network-pre.target shutdown.target reboot.target halt.target                        # Defines the order in which units are stoped. #(REQUIRED)

[Service]
Type=oneshot                                                                               # enables specifying multiple custom commands that are then executed sequentially. (REQUIRED)
RemainAfterExit=true                                                                       # required by the oneshot setting (REQUIRED)
Environment=ONE='one' "TWO='2"                                                             # you can set some environment variables, that may be necessary to pass as arguments
ExecStart=/bin/true                                                                        # because is a shutdown script nothing is done when this service is started
ExecStop=/bin/bash /usr/local/bin/my-custom-script.sh ${ONE} ${TWO}                        # < --*********** change to the script full path ************ (REQUIRED)
TimeoutStopSec=1min 35s                                                                    # Configures the time to wait for stop.

[Install]
WantedBy=multi-user.target                                                                 # When this unit is enabled, the units listed in WantedBy gain a Want dependency on the unit. (REQUIRED)

4. Platzieren Sie die Dienstdatei im Verzeichnis der erwarteten Dienstsammlung

Lassen Sie uns das benutzerdefinierte Skript im Verzeichnis der Dienstsammlung ablegen, d. h. /etc/systemd/system/ :

# cp my-custom-script.sh /etc/systemd/system/

5. Aktivieren Sie das Skript für zukünftige Neustarts

Ähnlich wie bei chkconfig aus früheren Versionen muss der Dienst aktiviert werden. Da ein neuer Dienst hinzugefügt wurde, benachrichtigen Sie den systemd-Daemon, sich neu zu konfigurieren:

# systemctl enable my-custom-script.service
# systemctl daemon-reload


Cent OS
  1. Hinzufügen/Entfernen von Locale-Archiven in CentOS/RHEL 5,6

  2. So debuggen Sie den systemd-Startvorgang in CentOS/RHEL 7 und 8

  3. CentOS / RHEL:So fügen Sie eine Auslagerungsdatei hinzu

  4. CentOS / RHEL :So fügen Sie iptable-Regeln hinzu

  5. So fügen Sie ein Gebietsschema unter CentOS/RHEL 8 hinzu

So installieren Sie Dropbox auf RHEL 8 / CentOS 8

So fügen Sie einen Benutzer zu einer Gruppe auf RHEL 8 / CentOS 8 hinzu

So installieren Sie Compass auf RHEL 8 / CentOS 8

So installieren Sie Puppet unter RHEL 8 / CentOS 8

So installieren/aktualisieren Sie Systemd unter RHEL/CentOS 7

CentOS / RHEL:So fügen Sie eine neue Swap-Partition hinzu