Crmgo Blog

Automatické spuštění skriptu v CentOS 7 pomocí systemd

Automatické spuštění skriptu v CentOS 7 pomocí systemd

Systemd přináší 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. Tento adresář má přednost před adresářem s nainstalovanými jednotkami z balíčků. /etc/systemd/system/ – jednotky vytvořené…

Automatické spuštění skriptu v CentOS 7 pomocí systemd

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

Poznámka: příspěvek mohl vzniknout s pomocí AI a lidskou redakcí. Odpovědný: Dmytro Lomaka, Kaltenkirchen.