Siveyans nou an te rekòmanse sèvis nou te kanpe aladibaz
Operasyon
Youn nan siveyans nou yo lanse nenpòt nan sèvis nou yo ki aktive men k ap pa kouri. De fwa nan mwa Oktòb, li te lanse sèvis nou te kanpe aladibaz. Dezyèm fwa a, vizitè sou youn nan sit nou yo te resevwa erè pandan apeprè 45 minit.
Poukisa siveyans sa a egziste
Yon sèvis ki soti pwòp lè li resevwa SIGTERM, pa egzanp paske yon bagay te touye l pa non, pa konsidere kòm "failed" dapre systemd. Restart=on-failure pa fè l retounen, epi systemctl --failed pa mete l nan lis la. Li rete desann jiskaske yon moun remake sa pa aza. Se konsa siveyans lan chèche sèvis ki aktive men k ap pa kouri, epi li lanse yo.
Pwoblèm nan se ke yon sèvis ou te kanpe ak men w sanble egzakteman menm bagay la.
Premye fwa a
Nan 7 Oktòb, nou te kanpe yon travayè videyo ak systemctl stop a 12:47 pou modifye ke travay li a. A 12:55, li te kouri ankò: siveyans lan te lanse l.
Dezyèm fwa a
Nan 21 Oktòb, nou te bezwen memwa machin nan ki sèvi tou ak de nan sit nou yo pou yon tès modèl. Yon script te kanpe aplikasyon web sit yo, yon travay senkronizasyon ak yon kontènè baz done, ankò ak systemctl stop. Apeprè senk minit apre, yon detè ki veye sit yo, epi a 19:14 siveyans lan, te fè tunèl la ak aplikasyon web yo retounen.
Tunèl la te pran trafik ankò, men aplikasyon web yo pa t ka reponn: modèl k ap teste a te kenbe 114 GiB nan memwa machin nan. Soti apeprè 19:14 rive 20:00, kèk vizitè te resevwa erè 502. A 20:00, nou te dezaktive tunèl la, aplikasyon web yo ak travay senkronizasyon an, epi nou te kanpe detè veye a.
Règ nou itilize kounye a
- Kanpe yon sèvis lè w dezaktive l:
sudo systemctl disable --now <unit>. Fè l retounen aksudo systemctl enable --now <unit>. Siveyans nou an gade sèlman sèvis ki aktive, se konsa yon sèvis dezaktive rete pou kont li. - Kanpe tout bagay ki ka fè l retounen: tunèl la devan l ak nenpòt detè ki veye l.
- Yon kanpe kout se yon kous. Si w sèlman itilize
stop, fini anvan pwochen tès la, ki sou machin nou yo rive nan kèk minit.
De lòt pèch systemd nan menm mwa yo
systemctl mask --runtimepa fè anyen pou yon inite dosye nan /etc/systemd/system. Inite nan /etc gen priyorite sou mas runtime nan /run, konsa kòmandman an reyisi epi sèvis la toujou kòmanse. Pou kenbe yon sèvis, nou itilize yon drop-in akConditionPathExists=!/etc/<name>.hold: pandan dosye sa a egziste, sèvis la p ap kòmanse, ni nan demaraj ni manyèl.systemctl is-activerele yon sèvis oneshot k ap kouri inaktif. Pandan yon sèvisType=oneshotap kouri, eta li se "activating", konsais-activeafiche sa a epi li retounen 3. Yon bouk tankouwhile systemctl is-active --quiet job.service; do sleep 60; done, ki fèt pou tann yon travay chak nwit, soti touswit. Li eta a pito: active, activating, reloading oswa deactivating tout vle di li toujou ap kouri.
Factory Floor ap veye sèvis ki aktive men ki pa kouri. Pa defo, li sèlman rapòte yo, epi li kòmanse yo sèlman si ou aktive opsyon sa a. Depi vèsyon 1.0.3, alèt li a di tou kijan pou mete yon sèvis nan poz pou rezon, epi runbook li a di menm bagay la.