Stav úlohy hlásí úspěch, protokol ukazuje dokončené spuštění a data jsou zastaralá nebo chybí. Tato kombinace obvykle znamená, že naplánovaná úloha začala bez cesty, kterou potřebovala, a něco níže po proudu selhání spolklo. Plán, který se spustí včas, nic neříká o tom, zda byla síť připravena. Právě mezera mezi těmito dvěma skutečnostmi je místem, kde toto selhání žije.

Vpuštění patří spuštění, ne existenci souboru cron.

Zelené spuštění není dokončená úloha

Plánovač zaznamená, že proces začal a později skončil; netuší, zda tento proces dosáhl zdroje, kvůli kterému existuje. Skript, který neúspěšné připojení bere jako prázdný výsledek, nebo zachytí chybu a skončí s nulou, bude navždy vypadat zdravě. Příznakem není červený stav; je to uvěřitelný stav připojený k chybějící práci.

Pojmenujte, co spuštění skutečně potřebuje, než rozhodnete, jak to ověřit. Záloha může potřebovat privátní DNS a ověřený koncový bod, ne jen proces tunelu.

Ověřujte připojení, ne název rozhraní

Rozhraní jménem tun0 může existovat bez relace, na které záleží, a toto jméno může vlastnit jiné připojení. Ověřte konkrétní objekt, na kterém úloha závisí: jednu identitu profilu, jednu instanci služby nebo malou schválenou operaci proti zdroji. Ověření držte časově omezené a přihlašovací údaje držte mimo argumenty procesu a diagnostické protokoly.

Definujte také výsledek odpojení. Běžné přeskočení, opakování v krátkém okně a operátorovi viditelný zmeškaný termín jsou tři různé odpovědi a opakující se plán mezi nimi nevolí.

Přeskočení a selhání jsou různé výsledky

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

V nasazení systemd spouští ExecCondition= tento kontrolor před pracovní zátěží. Jeho chování při ukončení je specifické: nula pokračuje, kódy od jedné do 254 přeskočí zbývající příkazy spuštění, aniž by jednotku označily jako selhanou, a 255 nebo abnormální ukončení ji selže. To dává tři odlišné signály, užitečné jen tehdy, pokud se na ně smlouva kontroloru záměrně mapuje. Nastavení, která předefinují úspěch, mohou obraz změnit, proto mapování zdokumentujte.

Právě zaznamenávání přeskočení dělá návrh poctivým. Přeskočené spuštění, které se nikde neobjeví, je nerozeznatelné od spuštění, které uspělo, a léčba každé chyby kontroloru jako tichého přeskočení neomezeně skrývá rozbité nasazení.

Chraňte celé spuštění, ne jen začátek

Kontrola připravenosti pozoruje svět před spuštěním; poté nehlídá každý socket. Když přímá cesta není pro tuto úlohu nikdy přijatelná, připojte schválenou politiku odchodu, která se uplatňuje nepřetržitě a pokrývá DNS, IPv6 a vlastní přenos tunelu. Přepínání globálního stavu IPv6 hostitele nenahrazuje politiku omezenou na úlohu.

Rozhodněte, zda se nová událost může překrývat s dosud běžící úlohou, toto pravidlo držte u vlastníka pracovní zátěže a opakování učiňte bezpečným pro datovou operaci. Zastavení úlohy při odpojení omezuje práci, ale nic nezaručuje o záložním provozu.

Přijměte postup ve třech případech: připravená cesta, nedostupná cesta a ztráta během běhu. Cokoli méně testuje plán, ne úlohu.

Související články