Az őrszemünk újraindította azokat a szolgáltatásokat, amelyeket szándékosan leállítottunk

Üzemeltetés

Az egyik őrszemünk elindítja a bekapcsolt, de nem futó szolgáltatásainkat. Októberben kétszer is előfordult, hogy olyan szolgáltatásokat indított el, amelyeket szándékosan leállítottunk. A második alkalommal az egyik oldalunk látogatói körülbelül 45 percig hibákat kaptak.

Miért létezik ez az őrszem

Egy szolgáltatás, amely tiszta kilépéssel zárul a SIGTERM jelzésre, például mert valamelyik folyamat név szerint leállította, a systemd szemében nem „hibás”. A Restart=on-failure nem indítja újra, és a systemctl --failed sem listázza. Addig marad leállva, amíg valaki észre nem veszi. Az őrszem ezért keresi a bekapcsolt, de nem futó szolgáltatásokat, és elindítja őket.

A probléma az, hogy egy kézzel leállított szolgáltatás pontosan ugyanígy néz ki.

Az első alkalommal

Október 7-én 12:47-kor a systemctl stop paranccsal leállítottunk egy videó-feldolgozót, hogy szerkesszük a feladatsorát. 12:55-kor már újra futott: az őrszem elindította.

A második alkalommal

Október 21-én szükségünk volt arra a gépre, amely két oldalunkat is kiszolgálja, egy modellteszt miatt. Egy szkript leállította az oldalak webalkalmazásait, egy szinkronizálási feladatot és egy adatbázis-konténert, szintén a systemctl stop paranccsal. Körülbelül öt perccel később egy időzítő, amely az oldalakat figyeli, majd 19:14-kor az őrszem visszaállította az alagutat és a webalkalmazásokat.

Az alagut újra fogadta a forgalmat, de a webalkalmazások nem tudtak válaszolni: a tesztelt modell a gép memóriájának 114 GiB-ját foglalta le. Körülbelül 19:14-től 20:00-ig egyes látogatók 502-es hibákat kaptak. 20:00-kor letiltottuk az alagutat, a webalkalmazásokat és a szinkronizálási feladatot, valamint leállítottuk a figyelő időzítőt.

A szabály, amelyet most használunk

Még két systemd csapda ugyanabból az időszakból

A Factory Floor figyeli az engedélyezett, de nem futó szolgáltatásokat. Alapértelmezés szerint csak jelentést készít róluk, és csak akkor indítja el őket, ha Ön ezt bekapcsolja. Az 1.0.3 verzió óta a riasztás megadja, hogyan szüneteltesz egy szolgáltatást szándékosan, és a futtatási útmutató is ugyanezt tartalmazza.

Frissítve: