GNU/Linux >> Znalost Linux >  >> Cent OS

jak přidat vlastní skript do systemd v CentOS/RHEL 7

Zařízení systemd nahrazuje starší inicializační skripty System-V z dřívějších verzí. Systemd je zařízení řízené událostmi, které umožňuje paralelní spouštění, řízení nebo zastavování nezávislých subsystémů. Zde vysvětlíme, jak přidat vlastní skript do zařízení systemd.

1. Napište a odlaďte vlastní skript

Skript systemd je obvykle napsán jako skript shellu. Začněte psaním vlastního skriptu pomocí běžných konvencí. Náš skript budeme nazývat my-custom-script.sh a je přímočarý:

#!/bin/sh
echo "I am a custom script" > /var/tmp/script.out
echo "The script was run at : `date`" >> > /var/tmp/script.out

Skript musí být spustitelný.

# chmod 0755 /var/tmp/my-custom-script.sh

2. Popište vlastní skript pro systemd

Se skriptem napsaným a otestovaným ručně je skript připraven k popisu systému systemd. K tomu slouží služba [název]. soubor je potřeba. Syntaxe používá formát INI běžně používaný pro konfigurační soubory. Pokračujeme-li v našem příkladu, potřebujeme soubor my-custom-script.service. Spustitelný soubor se spustí přesně jednou při každém spuštění služby. Služba nebude spuštěna, dokud nebude síťová vrstva aktivní a stabilní.

Vytvořte nový soubor servisní jednotky na /etc/systemd/system/my-custom-script.service s níže uvedeným obsahem. Název servisní jednotky je definován uživatelem a může to být libovolný název podle vašeho výběru.

# 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 /var/tmp/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)

3. Povolit skript pro budoucí restartování

Podobně jako u chkconfig z dřívějších verzí musí být služba povolena. Protože byla přidána nová služba, upozorněte démona systemd, aby se překonfiguroval:

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


Cent OS
  1. Jak nakonfigurovat démona autofs na CentOS 7/Rhel 7

  2. CentOS / RHEL 7 :Jak vytvořit vlastní skript, který se automaticky spustí během bootování

  3. CentOS / RHEL :Jak změnit UUID souborového systému

  1. Jak změnit štítky souborového systému v CentOS/RHEL

  2. Jak provést příkaz Pstack na CentOS/RHEL

  3. Jak přidat další jazykovou podporu v CentOS/RHEL

  1. Jak přidat/odebrat místní archiv v CentOS/RHEL 5,6

  2. Jak přidat vlastní skript do systemd v CentOS/RHEL 7

  3. Jak trvale nastavit nastavení ethtool v CentOS/RHEL 6