Crmgo Blog

Automatsko pokretanje skripte u CentOS 7 pomoću systemd

Automatsko pokretanje skripte u CentOS 7 pomoću systemd

Systemd donosi koncept systemd jedinica. Jedinice su predstavljene konfiguracijskim datotekama smještenim u jednom od sljedećih direktorija: /usr/lib/systemd/system/ – jedinice iz instaliranih RPM paketa. /run/systemd/system/ — jedinice kreirane u runtime-u. Ovaj direktorij ima veći prioritet od direktorija s instaliranim jedinicama iz paketa. /etc/systemd/system/ — jedinice kreirane...

Automatsko pokretanje skripte u CentOS 7 pomoću systemd

Systemd uvodi koncept systemd jedinica. Jedinice su predstavljene konfiguracionim fajlovima smeštenim u jednom od direktorijuma:

  • /usr/lib/systemd/system/ – jedinice iz instaliranih RPM paketa.
  • /run/systemd/system/ – jedinice kreirane u runtime-u. Ovaj direktorijum ima veći prioritet od direktorijuma sa instaliranim jedinicama iz paketa.
  • /etc/systemd/system/ – jedinice kreirane i upravljane od strane sistemskog administratora. Ovaj direktorijum ima veći prioritet od direktorijuma sa jedinicama kreiranim u runtime-u.

 

 

Kreiramo fajl naše usluge:

# touch /etc/systemd/system/routing-settings.service # chmod 664 /etc/systemd/system/routing-settings.service

sa sledećim sadržajem:

[Unit] Description=Routing Settings Service After=network.target

[Service]
Type=oneshot
User=root
ExecStart=/root/routing.sh

[Install]
WantedBy=multi-user.target

User=root - pokretanje kao root! Navedite (ili ne navedite) korisnika pod čijim imenom treba da se izvrši vaš skript. Moj skript mora da se izvrši kao root. Ne mogu reći da me to raduje, jer postoji potreba za strogim kontrolisanjem lokacije skripta i dozvola pristupa.

Type=oneshot označava da će proces biti završen pre pokretanja daljih jedinica. Potpuno odgovara za skripte.

Proveravamo:

# systemctl start routing-settings

Ako nakon izvršavanja skripte vidimo očekivani rezultat, omogućićemo ovaj "servis" za automatsko pokretanje:

# systemctl enable routing-settings

Pokušavamo restartovanje sistema. Trebalo bi da radi.

Pogledajmo kada je naša usluga pokrenuta:

# systemctl status routing-settings

Napomena: tekst može biti uz pomoć AI uz ljudsku proveru. Odgovoran: Dmytro Lomaka, Kaltenkirchen.