Planeeritud töö, mis jooksis ilma VPN-ita, näeb korras välja
Olek ütleb edu ja andmed puuduvad. Siduge iga käivitus täpse ühendusega ja kirjutage vahelejätmised eraldi üles, selle asemel et graafikut usaldada.
Töö olek ütleb edu, logi näitab lõpetatud käivitust ja andmed on aegunud või puuduvad. See kombinatsioon tähendab tavaliselt, et planeeritud töö algas ilma vajaliku teeta ja midagi allavoolu neelas tõrke alla. Graafik, mis käivitub õigel ajal, ei ütle midagi selle kohta, kas võrk oli valmis. Just nende kahe fakti vaheline lünk on koht, kus see tõrge elab.
Lubamine kuulub käivituse juurde, mitte cron-faili olemasolu juurde.
Roheline käivitus ei ole lõpetatud töö
Planeerija märgib, et protsess algas ja hiljem väljus; tal pole aimugi, kas see protsess jõudis ressursini, mille jaoks ta eksisteerib. Skript, mis käsitleb ebaõnnestunud ühendust tühja tulemusena või püüab vea ja väljub nulliga, näeb igavesti terve välja. Sümptom ei ole punane olek; see on usutav olek, mis on kinnitatud puuduva töö külge.
Nimetage, mida käivitus tegelikult vajab, enne kui otsustate, kuidas seda kontrollida. Varukoopia võib vajada privaatset DNS-i ja autenditud lõpp-punkti, mitte ainult tunneliprotsessi.
Kontrollige ühendust, mitte liidese nime
Liides nimega tun0 võib eksisteerida ilma olulise seansita ja teine ühendus võib selle nime omanikuks olla. Kontrollige konkreetset objekti, millest töö sõltub: üks profiili identiteet, üks teenuse eksemplar või väike kinnitatud toiming ressursi vastu. Hoidke kontroll ajaliselt piiratud ja hoidke volitused protsessi argumentidest ning diagnostikalogidest eemal.
Määratlege ka ühenduseta tulemus. Tavaline vahelejätmine, lühikese akna sees tehtud korduskatse ja operaatorile nähtav möödunud tähtaeg on kolm erinevat vastust ning korduv graafik ei vali nende vahel.
Vahelejätmised ja tõrked on erinevad tulemused
[Service] Type=oneshot User=worker ExecCondition=/usr/local/libexec/check-office-path ExecStart=/usr/local/bin/private-task
systemd-paigalduses käivitab ExecCondition= selle kontrollija enne töökoormust. Selle väljumiskäitumine on spetsiifiline: null jätkab, koodid ühest 254-ni jätavad vahele ülejäänud käivituskäsud ilma üksust ebaõnnestunuks märkimata, ning 255 või ebanormaalne lõpetamine muudab selle ebaõnnestunuks. See annab kolm erinevat signaali, mis on kasulikud ainult siis, kui kontrollija leping on nendega teadlikult vastavusse viidud. Seaded, mis määratlevad edu ümber, võivad pilti muuta, seega dokumenteerige vastavus.
Just vahelejätmiste kirjapanek teeb disaini ausaks. Vahelejätetud käivitus, mis ei ilmu kusagil, on eristamatu õnnestunud käivitusest, ja iga kontrollija vea vaikse vahelejätmisena käsitlemine varjab katkist paigaldust määramata ajaks.
Kaitske kogu käivitust, mitte ainult algust
Valmiduskontroll vaatleb maailma enne käivitamist; see ei valva hiljem iga soklit. Kui otsene tee ei ole selle töö jaoks kunagi vastuvõetav, lisage kinnitatud väljundpoliitika, mida rakendatakse pidevalt ja mis katab DNS-i, IPv6 ja tunneli enda transporti. Hosti globaalse IPv6 oleku lülitamine ei asenda tööle piiratud poliitikat.
Otsustage, kas uus sündmus võib kattuda veel jooksva tööga, hoidke seda reeglit töökoormuse omaniku juures ja tehke korduskatse andmetoimingu jaoks ohutuks. Töö peatamine ühenduse katkemisel piirab tööd, kuid ei garanteeri midagi varutrafiku kohta.
Nõustuge töövooga kolmel juhul: valmis tee, kättesaamatu tee ja käivituseaegne kadu. Kõik vähem kontrollib graafikut, mitte tööd.