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.service
a 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
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.