Stav úlohy hlási úspech, záznam ukazuje dokončené spustenie a údaje sú zastarané alebo chýbajú. Táto kombinácia zvyčajne znamená, že naplánovaná úloha začala bez cesty, ktorú potrebovala, a niečo nižšie po prúde to zlyhanie prehltlo. Plán, ktorý sa spustí načas, nič nehovorí o tom, či bola sieť pripravená. Práve medzera medzi týmito dvoma faktami je miestom, kde toto zlyhanie žije.

Povolenie patrí spusteniu, nie existencii súboru cron.

Zelené spustenie nie je dokončená úloha

Plánovač zaznamená, že proces začal a neskôr skončil; netuší, či tento proces dosiahol zdroj, pre ktorý existuje. Skript, ktorý neúspešné pripojenie berie ako prázdny výsledok, alebo zachytí chybu a skončí s nulou, bude vyzerať zdravo navždy. Príznakom nie je červený stav; je to vierohodný stav pripnutý k chýbajúcej práci.

Pomenujte, čo spustenie skutočne potrebuje, skôr než rozhodnete, ako to overiť. Záloha môže potrebovať súkromný DNS a overený koncový bod, nie len proces tunela.

Overujte pripojenie, nie názov rozhrania

Rozhranie s názvom tun0 môže existovať bez relácie, na ktorej záleží, a toto meno môže vlastniť iné pripojenie. Overte konkrétny objekt, od ktorého úloha závisí: jednu identitu profilu, jednu inštanciu služby alebo malú schválenú operáciu proti zdroju. Overenie držte časovo ohraničené a prihlasovacie údaje držte mimo argumentov procesu a diagnostických záznamov.

Definujte aj výsledok odpojenia. Bežné preskočenie, opakovanie v krátkom okne a operátorovi viditeľný zmeškaný termín sú tri rôzne odpovede a opakujúci sa plán medzi nimi nevyberá.

Preskočenia a zlyhania sú rôzne výsledky

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

V nasadení systemd spúšťa ExecCondition= tento kontrolór pred pracovnou záťažou. Jeho správanie pri ukončení je špecifické: nula pokračuje, kódy od jedna do 254 preskočia zostávajúce príkazy spustenia bez označenia jednotky ako zlyhanej a 255 alebo abnormálne ukončenie ju zlyhá. To dáva tri odlišné signály, užitočné len vtedy, ak sa na ne zmluva kontrolóra zámerne mapuje. Nastavenia, ktoré predefinujú úspech, môžu obraz zmeniť, preto mapovanie zdokumentujte.

Práve zaznamenávanie preskočení robí návrh čestným. Preskočené spustenie, ktoré sa nikde neobjaví, je nerozoznateľné od spustenia, ktoré uspelo, a liečenie každej chyby kontrolóra ako tichého preskočenia neobmedzene skrýva pokazené nasadenie.

Chráňte celé spustenie, nielen začiatok

Kontrola pripravenosti pozoruje svet pred spustením; potom už nehliadkuje každý socket. Keď priama cesta nie je pre túto úlohu nikdy prijateľná, pripojte schválenú politiku odchodu, ktorá sa uplatňuje nepretržite a pokrýva DNS, IPv6 a vlastný prenos tunela. Prepínanie globálneho stavu IPv6 hostiteľa nenahrádza politiku obmedzenú na úlohu.

Rozhodnite, či sa nová udalosť môže prekrývať s ešte bežiacou úlohou, toto pravidlo držte u vlastníka pracovnej záťaže a opakovanie urobte bezpečným pre dátovú operáciu. Zastavenie úlohy pri odpojení obmedzuje prácu, ale nič negarantuje o záložnej prevádzke.

Prijmite postup v troch prípadoch: pripravená cesta, nedostupná cesta a strata počas behu. Čokoľvek menej testuje plán, nie úlohu.

Súvisiace články