Systemd zavádí koncept systemd jednotek. Jednotky jsou reprezentovány konfiguračními soubory umístěnými v jedné z následujících adresářů:
- /usr/lib/systemd/system/ – jednotky z nainstalovaných RPM balíčků.
- /run/systemd/system/ – jednotky vytvořené za běhu. Tato složka má přednost před složkou s jednotkami z nainstalovaných balíčků.
- /etc/systemd/system/ – jednotky vytvořené a spravované systémovým administrátorem. Tato složka má přednost před složkou s jednotkami vytvořenými za běhu.
Vytvoříme soubor naší služby:
# touch /etc/systemd/system/routing-settings.service # chmod 664 /etc/systemd/system/routing-settings.service
s následujícím obsahem:
[Unit] Description=Routing Settings Service After=network.target
[Service]
Type=oneshot
User=root
ExecStart=/root/routing.sh
[Install]
WantedBy=multi-user.target
User=root – spuštění pod uživatelem root! Uveďte (nebo neuveďte) uživatele, pod kterým má být váš skript spuštěn. Můj skript musí běžet pod rootem. Nemohu říct, že mě to těší, protože je nutné přísně kontrolovat umístění skriptu a oprávnění k němu.
Type=oneshot znamená, že proces bude dokončen před spuštěním dalších jednotek. Pro skripty je to zcela vhodné.
Otestujeme:
# systemctl start routing-settings
Pokud po provedení skriptu uvidíme očekávaný výsledek, povolíme tuto „službu“ pro automatické spuštění:
# systemctl enable routing-settings
Zkusíme restartovat. Mělo by to fungovat.
Podívejme se, kdy byla naše služba spuštěna:
# systemctl status routing-settings
