Systemd restart služby pokud skončí chybou

Marecek

Systemd restart služby pokud skončí chybou
« kdy: 27. 04. 2017, 11:03:26 »
Ahoj, jde nějak v systemd nastavit aby restartoval sluzbu pokud neocekavale skonci s chybou ?
Nemohu to v tom balastu dokumentace najít nebo musím instalovat nějaké další nástroje deamontools nebo jak se to jmenuje, jde mi jen o restart a nechci psat scrip do kromu co to bude hlídat co 5 minut.
Díky Mareček
« Poslední změna: 27. 04. 2017, 12:59:38 od Petr Krčmář »



Marecek

Re:Systemd restart sluzby pokud skonci chybou.
« Odpověď #2 kdy: 27. 04. 2017, 11:18:30 »
Dobry den, to jsem nasel, ale jsem asi blbej, ale jak se to aplikuje na konkretni sluzbu ?
service <jmenosluzby> restart=60 nebo pres systemctl ?

Re:Systemd restart sluzby pokud skonci chybou.
« Odpověď #3 kdy: 27. 04. 2017, 11:46:44 »
Dobry den, to jsem nasel, ale jsem asi blbej, ale jak se to aplikuje na konkretni sluzbu ?
service <jmenosluzby> restart=60 nebo pres systemctl ?

Mozna zacni tim, ze si projdes nejaky tutorial ;)

Pise se to do unit file. Pises ho od zacatku, nebo chces jenom prepsat defaulty od neceho, co je uz v systemu?

Marecek

Re:Systemd restart sluzby pokud skonci chybou.
« Odpověď #4 kdy: 27. 04. 2017, 11:54:33 »
Chci je restart bind9 v pripade ze havaruje.
Jestli to chapu tak mam v systemu toto.

[Unit]
Description=BIND Domain Name Server
Documentation=man:named(8)
After=network.target
Wants=nss-lookup.target
Before=nss-lookup.target

[Service]
EnvironmentFile=/etc/default/bind9
ExecStart=/usr/sbin/named -f $OPTIONS
ExecReload=/usr/sbin/rndc reload
ExecStop=/usr/sbin/rndc stop

[Install]
WantedBy=multi-user.target

A musim tam jen doplnit do service
Restart=on-failure
a pak restartnout bind ,  systemctl restart bind9.service nebo musim restartnout i systemd aby si nacetl novou cfg ?



Re:Systemd restart sluzby pokud skonci chybou.
« Odpověď #5 kdy: 27. 04. 2017, 12:06:51 »
Chci je restart bind9 v pripade ze havaruje.
Jestli to chapu tak mam v systemu toto.

[Unit]
Description=BIND Domain Name Server
Documentation=man:named(8)
After=network.target
Wants=nss-lookup.target
Before=nss-lookup.target

[Service]
EnvironmentFile=/etc/default/bind9
ExecStart=/usr/sbin/named -f $OPTIONS
ExecReload=/usr/sbin/rndc reload
ExecStop=/usr/sbin/rndc stop

[Install]
WantedBy=multi-user.target

A musim tam jen doplnit do service
Restart=on-failure
a pak restartnout bind ,  systemctl restart bind9.service nebo musim restartnout i systemd aby si nacetl novou cfg ?

vazne by sis  mel precist dokumentaci...

(chces systemd daemon-reload a nechces prasit do existujiciho souboru, ale chces jenom specifikovat detaily. Viz https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html#sect-Managing_Services_with_systemd-Unit_File_Modify )

(dale - nekdo to napsal, jak to napsal, tak mozna stoji za zamysleni, zda k tomu nemel duvod - ciste pro jistotu)

Marecek

Re:Systemd restart služby pokud skončí chybou
« Odpověď #6 kdy: 27. 04. 2017, 13:06:26 »
Fakt nekecal, dekuji.
---
mkdir -p /etc/systemd/system/bind9.service.d
vim /etc/systemd/system/bind9.service.d/bind9_restart.conf
[Service]
Restart=always
RestartSec=30

systemctl daemon-reload
systemctl restart bind9.service
---
A po killnuti named procesu to fakt nastartuje znovu samo, fakt to k necemu je ten systemd.
Diky

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Systemd restart služby pokud skončí chybou
« Odpověď #7 kdy: 27. 04. 2017, 13:48:27 »
A po killnuti named procesu to fakt nastartuje znovu samo, fakt to k necemu je ten systemd.

Jezis, ten Poettering je ale chytrej! Vzdyt tohle se az dosud nedalo v NIXech nijak resit.

Re:Systemd restart služby pokud skončí chybou
« Odpověď #8 kdy: 27. 04. 2017, 13:53:42 »
A po killnuti named procesu to fakt nastartuje znovu samo, fakt to k necemu je ten systemd.

Jezis, ten Poettering je ale chytrej! Vzdyt tohle se az dosud nedalo v NIXech nijak resit.

A to tu nekdo tvrdil?

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Systemd restart služby pokud skončí chybou
« Odpověď #9 kdy: 27. 04. 2017, 14:11:19 »
A to tu nekdo tvrdil?

".....fakt to k necemu je ten systemd."

j

Re:Systemd restart služby pokud skončí chybou
« Odpověď #10 kdy: 27. 04. 2017, 14:14:53 »
....
A ted sem zvedavej, co budes delat, az se ti ten bind bude restartovat pekne porad dokola, sezere to veskery IO, CPU ...

Sten

Re:Systemd restart služby pokud skončí chybou
« Odpověď #11 kdy: 27. 04. 2017, 15:03:54 »
Jezis, ten Poettering je ale chytrej! Vzdyt tohle se az dosud nedalo v NIXech nijak resit.

A jak se to řešilo? Napsal jsi to do inittab, takže při chybě při změně konfigurace se to neustále dokola restartovalo tak rychle, jak jen to šlo?

A ted sem zvedavej, co budes delat, az se ti ten bind bude restartovat pekne porad dokola, sezere to veskery IO, CPU ...

Tady je to zase samý ekspert na to, jak špatný je systemd, aniž by znal jen základy

Citace
RestartSec=
Configures the time to sleep before restarting a service

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Systemd restart služby pokud skončí chybou
« Odpověď #12 kdy: 27. 04. 2017, 17:03:47 »
Jezis, ten Poettering je ale chytrej! Vzdyt tohle se az dosud nedalo v NIXech nijak resit.

A jak se to řešilo? Napsal jsi to do inittab, takže při chybě při změně konfigurace se to neustále dokola restartovalo tak rychle, jak jen to šlo?

Tak on to systemd dela nejak uzasneji? Krome toho, kdo ti brani si do inittab dat skript, kteru spousti tu sluzbu treba s par vterinovym zpozdenim, aby se to nespoustelo "neustále dokola, tak rychle, jak jen to šlo"?

Ucitel

Re:Systemd restart služby pokud skončí chybou
« Odpověď #13 kdy: 27. 04. 2017, 17:18:44 »
Krome toho, kdo ti brani si do inittab dat skript

Pud sebezachovy. SystemD jsme nevymysleli jako truc podnik, ale proto ze starej init byl vousatej hack & bordel. Nic proti retro masochistum ale SystemD vyhral na cely care a NIC uz s tim nenadelate. A vyhral proto ze JE lepsi. Ty Jardo taky jednou zmigrujes, akorat to pak nejak obkecas ze v 2017 to jeste nebylo ono ale ted to uz je dobry...

Sten

Re:Systemd restart služby pokud skončí chybou
« Odpověď #14 kdy: 27. 04. 2017, 17:39:04 »
Tak on to systemd dela nejak uzasneji? Krome toho, kdo ti brani si do inittab dat skript, kteru spousti tu sluzbu treba s par vterinovym zpozdenim, aby se to nespoustelo "neustále dokola, tak rychle, jak jen to šlo"?

Systemd to dělá tak, že to máš v jednotce, která má start/stop/reload, enable/disable, umí mimo jiné třeba i měnit uživatele, omezit využité zdroje (mrkám na j-čko a jeho hlášku o plném vytížení CPU a IO) či posílat e-maily při pádu.

Nic ti nebrání napsat si na tohle všechno skript. Stejně tak ti nic nebrání napsat si vlastní DNS server, který nepadá. Pokud ignoruješ, kolik to bude stát času a problémů s údržbou.