Crmgo Blog

Automatyczne uruchamianie skryptu w CentOS 7 przy użyciu systemd

Automatyczne uruchamianie skryptu w CentOS 7 przy użyciu systemd

Systemd wprowadza koncepcję jednostek systemd. Jednostki są reprezentowane przez pliki konfiguracyjne umieszczone w jednym z katalogów: /usr/lib/systemd/system/ – jednostki pochodzące z zainstalowanych pakietów RPM. /run/systemd/system/ – jednostki tworzone w czasie działania systemu. Ten katalog ma wyższy priorytet niż katalog z jednostkami zainstalowanymi z pakietów. /etc/systemd/system/ – jednostki tworzone...

Automatyczne uruchamianie skryptu w CentOS 7 przy użyciu systemd

Systemd wprowadza koncepcję jednostek systemd. Jednostki są reprezentowane przez pliki konfiguracyjne umieszczone w jednym z katalogów:

  • /usr/lib/systemd/system/ – jednostki zainstalowane z pakietów RPM.
  • /run/systemd/system/ — jednostki utworzone w czasie działania systemu. Ten katalog ma wyższy priorytet niż katalog z jednostkami zainstalowanymi z pakietów.
  • /etc/systemd/system/ — jednostki utworzone i zarządzane przez administratora systemu. Ten katalog ma wyższy priorytet niż katalog z jednostkami utworzonymi w czasie działania systemu.

 

 

Tworzymy plik naszej usługi:

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

o następującej zawartości:

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

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

[Install]
WantedBy=multi-user.target

User=root - uruchamianie jako root! Określ (lub nie określaj) użytkownika, pod którym ma być wykonywany Twój skrypt. Mój skrypt musi być uruchamiany jako root. Nie mogę powiedzieć, że mnie to cieszy, ponieważ konieczne jest ścisłe kontrolowanie lokalizacji skryptu i uprawnień do niego.

Type=oneshot oznacza, że proces zostanie zakończony przed uruchomieniem kolejnych jednostek. Jest to w pełni odpowiednie dla skryptów.

Sprawdzamy:

# systemctl start routing-settings

Jeśli po wykonaniu skryptu zobaczymy oczekiwany wynik, włączmy tę „usługę” do autostartu:

# systemctl enable routing-settings

Spróbujmy ponownie uruchomić system. Powinno działać.

Spójrzmy, kiedy została uruchomiona nasza usługa:

# systemctl status routing-settings

Uwaga: wpis mógł powstać z pomocą AI i redakcji. Odpowiedzialny: Dmytro Lomaka, Kaltenkirchen.