Jak automaticky spustit shellový skript při startu systému systemd Linux

Následující konfigurace popisuje základní příklad, jak spustit shellový skript při startu systému systemd Linux. Možná existují různé důvody, proč byste mohli chtít spustit shellový skript během spouštění systému Linux, jako je například spuštění určité vlastní služby, kontrola místa na disku, vytvoření zálohy atd.
Následující příklad níže poslouží jako základní šablona, kterou můžete později upravit podle svých konkrétních potřeb. V níže uvedeném příkladu budeme během spouštění systému kontrolovat místo na disku v adresáři /home/ a zapisovat zprávu do adresáře /root/.

Jednotka služby systemd

Nejprve musíme vytvořit spouštěcí skript systemd např. disk-space-check.servicea umístit jej do adresáře /etc/systemd/system/. Příklad takového spouštěcího skriptu systemd najdete níže:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • Po: Skript se spustí v okamžiku, kdy má být spuštěn. V našem případě se skript spustí po spuštění databáze mysql. Dalším příkladem může být network.target atd.
  • ExecStart: Toto pole udává úplnou cestu k aktuálnímu skriptu, který má být spuštěn
  • WantedBy: Do jakého zaváděcího cíle má být jednotka systemd nainstalována

Výše uvedené údaje jsou naprostým minimem, které by měla naše jednotka služby systemd obsahovat, aby bylo možné náš skript při zavádění systému spustit. Další informace a volby, které je třeba použít, naleznete na příručkové stránce systemd.service:

$ man systemd.service

Skript spouštěcího shellu

Dále vytvoříme náš vlastní skript shellu, který se bude spouštět při startu systemd. Umístění a název skriptu je již definován jednotkou služby jako /usr/local/bin/disk-space-check.sh. Obsah skriptu může být jednoduchý jako:

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Hledá se systémový analytik pro Linux !
Geofyzikální ústav UAF, hledá zkušeného systémového analytika pro Linux, který by se připojil k týmu analytiků a inženýrů výzkumné kybernetické infrastruktury. MÍSTO VÝKONU: Fairbanks, Aljaška, USA
PŘIHLÁSIT SE HNED

Konfigurace a instalace

Před restartem systému musíme zajistit spustitelnost našeho skriptu:

# chmod 744 /usr/local/bin/disk-space-check.sh

Dále nainstalujte servisní jednotku systemd a povolte ji, aby se spouštěla při startu systému:

# chmod 664 /etc/systemd/system/disk-space-check.service# systemctl daemon-reload# systemctl enable disk-space-check.serviceCreated symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.

Pokud chcete skript otestovat před restartem, spusťte jej:

# systemctl start disk-space-check.service# cat /root/disk_space_report.txt Thursday 7 July 11:30:25 AEST 20161.5G /home/

Vše je připraveno. Po restartu systému Linux výše uvedená jednotka systemd vyvolá shellový skript, který se spustí při startu systému.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.