Työn tila kertoo onnistumisesta, loki näyttää valmistuneen ajon ja tiedot ovat vanhentuneita tai puuttuvat. Tämä yhdistelmä tarkoittaa yleensä, että ajastettu työ alkoi ilman tarvitsemaansa polkua ja jokin alempana nieli virheen. Aikataulu, joka laukeaa ajallaan, ei kerro mitään siitä, oliko verkko valmis. Juuri näiden kahden tosiasian välinen kuilu on paikka, jossa tämä virhe elää.

Salliminen kuuluu ajoon, ei cron-tiedoston olemassaoloon.

Vihreä ajo ei ole valmis työ

Ajastin merkitsee, että prosessi alkoi ja poistui myöhemmin; sillä ei ole aavistustakaan, saavuttiko prosessi resurssin, jota varten se on olemassa. Skripti, joka käsittelee epäonnistuneen yhteyden tyhjänä tuloksena tai nappaa virheen ja poistuu nollalla, näyttää terveeltä ikuisesti. Oire ei ole punainen tila; se on uskottava tila, joka on kiinnitetty puuttuvaan työhön.

Nimeä, mitä ajo todella tarvitsee, ennen kuin päätät, miten se tarkistetaan. Varmuuskopio voi tarvita yksityisen DNS:n ja todennetun päätepisteen, ei pelkästään tunneliprosessia.

Tarkista yhteys, älä liitännän nimeä

tun0-niminen liitäntä voi olla olemassa ilman ratkaisevaa istuntoa, ja toinen yhteys voi omistaa sen nimen. Tarkista se konkreettinen objekti, josta työ riippuu: yksi profiili-identiteetti, yksi palveluinstanssi tai pieni hyväksytty toimenpide resurssia vastaan. Pidä tarkistus ajallisesti rajattuna ja pidä tunnistetiedot poissa prosessin argumenteista ja diagnostiikkalokeista.

Määrittele myös yhteydettömän tilan tulos. Tavallinen ohitus, uudelleenyritys lyhyen aikaikkunan sisällä ja operaattorille näkyvä ohitettu määräaika ovat kolme eri vastausta, eikä toistuva aikataulu valitse niiden välillä.

Ohitukset ja virheet ovat eri tuloksia

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

systemd-käyttöönotossa ExecCondition= suorittaa tarkistajan ennen työkuormaa. Sen poistumiskäyttäytyminen on erityinen: nolla jatkaa, koodit yhdestä 254:ään ohittavat jäljellä olevat käynnistyskomennot merkitsemättä yksikköä epäonnistuneeksi, ja 255 tai epänormaali lopetus epäonnistuttaa sen. Tämä antaa kolme erillistä signaalia, jotka ovat hyödyllisiä vain, jos tarkistajan sopimus kartoitetaan niihin tarkoituksella. Onnistumisen uudelleenmäärittelevät asetukset voivat muuttaa kuvaa, joten dokumentoi kartoitus.

Ohitusten kirjaaminen on se, mikä tekee suunnittelusta rehellisen. Ohitettu ajo, joka ei näy missään, on erottamaton onnistuneesta ajosta, ja jokaisen tarkistajavirheen käsitteleminen hiljaisena ohituksena kätkee rikkinäisen käyttöönoton määräämättömäksi ajaksi.

Suojaa koko ajo, älä vain alkua

Valmiustarkistus havainnoi maailmaa ennen käynnistystä; se ei valvo jokaista pistoketta sen jälkeen. Kun suora polku ei ole koskaan hyväksyttävä tälle työlle, liitä hyväksytty lähtevän liikenteen käytäntö, jota valvotaan jatkuvasti ja joka kattaa DNS:n, IPv6:n ja tunnelin oman siirron. Isäntäkoneen globaalin IPv6-tilan vaihtaminen ei korvaa työhön rajattua käytäntöä.

Päätä, voiko uusi tapahtuma mennä päällekkäin vielä käynnissä olevan työn kanssa, pidä tämä sääntö työkuorman omistajalla ja tee uudelleenyrityksestä turvallinen tietotoimitukselle. Työn pysäyttäminen yhteyden katketessa rajoittaa työtä takaamatta mitään varaliikenteestä.

Hyväksy työnkulku kolmessa tapauksessa: valmis polku, käyttökelvoton polku ja ajon aikainen menetys. Mikä tahansa vähempi testaa aikataulua, ei työtä.

Aiheeseen liittyvät artikkelit