Užduoties būsena sako sėkmė, žurnalas rodo baigtą paleidimą, o duomenys pasenę arba jų nėra. Šis derinys paprastai reiškia, kad suplanuota užduotis prasidėjo be jai reikalingo kelio, ir kažkas toliau pasroviui prarijo gedimą. Grafikas, kuris suveikia laiku, nieko nesako apie tai, ar tinklas buvo pasiruošęs. Būtent tarpas tarp šių dviejų faktų yra vieta, kur gyvena šis gedimas.

Priėmimas priklauso paleidimui, o ne cron failo egzistavimui.

Žalias paleidimas nėra baigta užduotis

Planuoklis užfiksuoja, kad procesas prasidėjo ir vėliau išėjo; jis nežino, ar tas procesas pasiekė išteklių, kuriam egzistuoja. Scenarijus, kuris nepavykusią jungtį traktuoja kaip tuščią rezultatą arba pagauna klaidą ir išeina su nuliu, atrodys sveikas amžinai. Simptomas nėra raudona būsena; tai įtikinama būsena, prikabinta prie trūkstamo darbo.

Įvardykite, ko paleidimui iš tikrųjų reikia, prieš nuspręsdami, kaip jį tikrinti. Atsarginė kopija gali reikalauti privataus DNS ir autentifikuoto galinio taško, o ne vien tunelio proceso.

Tikrinkite jungtį, o ne sąsajos pavadinimą

Sąsaja pavadinimu tun0 gali egzistuoti be svarbios sesijos, o kita jungtis gali turėti tą pavadinimą. Patikrinkite konkretų objektą, nuo kurio priklauso užduotis: vieną profilio tapatybę, vieną paslaugos egzempliorių arba nedidelę patvirtintą operaciją su ištekliumi. Tikrinimą laikykite ribotą laike, o prisijungimo duomenis laikykite už proceso argumentų ir diagnostikos žurnalų.

Apibrėžkite ir atsijungimo rezultatą. Įprastas praleidimas, pakartotinis bandymas per trumpą langą ir operatoriui matomas praleistas terminas yra trys skirtingi atsakymai, o pasikartojantis grafikas tarp jų nesirenka.

Praleidimai ir gedimai yra skirtingi rezultatai

[Service]
Type=oneshot
User=worker
ExecCondition=/usr/local/libexec/check-office-path
ExecStart=/usr/local/bin/private-task

systemd diegime ExecCondition= paleidžia tą tikrintuvą prieš darbo krūvį. Jo išėjimo elgsena specifinė: nulis tęsia, kodai nuo vieno iki 254 praleidžia likusias paleidimo komandas nepažymėdami įrenginio kaip nepavykusio, o 255 arba nenormalus nutraukimas jį sugadina. Tai duoda tris skirtingus signalus, naudingus tik tuo atveju, jei tikrintuvo sutartis sąmoningai susieta su jais. Nustatymai, iš naujo apibrėžiantys sėkmę, gali pakeisti vaizdą, todėl dokumentuokite susiejimą.

Būtent praleidimų registravimas daro dizainą sąžiningą. Praleistas paleidimas, kuris niekur nepasirėdo, nesiskiria nuo paleidimo, kuris pavyko, o kiekvienos tikrintuvo klaidos traktavimas kaip tylaus praleidimo neribotai slepia sugedusį diegimą.

Saugokite visą paleidimą, o ne tik pradžią

Pasirengimo patikra stebi pasaulį prieš paleidimą; ji po to neprižiūri kiekvieno lizdo. Kai tiesioginis kelias šiai užduočiai niekada nepriimtinas, pridėkite patvirtintą išėjimo politiką, kuri taikoma nuolat ir apima DNS, IPv6 bei paties tunelio transportą. Globačios IPv6 būsenos perjungimas hoste nepakeičia užduočiai skirtos politikos.

Nuspręskite, ar naujas įvykis gali persidengti su dar vykstančia užduotimi, laikykite šią taisyklę pas darbo krūvio savininką ir padarykite pakartotinį bandymą saugų duomenų operacijai. Užduoties sustabdymas atsijungus riboja darbą, bet nieko negarantuoja dėl atsarginio srauto.

Priimkite darbo eigą trimis atvejais: paruoštas kelias, nepasiekiamas kelias ir praradimas vykdymo metu. Bet kas mažiau tikrina grafiką, o ne užduotį.

Susiję straipsniai