Status zadatka kaže uspjeh, dnevnik pokazuje završeno pokretanje, a podaci su zastarjeli ili ih nema. Ta kombinacija obično znači da je zakazani zadatak počeo bez putanje koja mu je bila potrebna i da je nešto nizvodno progutalo kvar. Raspored koji se aktivira na vrijeme ne govori ništa o tome je li mreža bila spremna. Jaz između te dvije činjenice je mjesto gdje ovaj kvar živi.

Dopuštenje pripada pokretanju, a ne postojanju cron datoteke.

Zeleno pokretanje nije završen zadatak

Planer bilježi da je proces počeo i kasnije izašao; nema pojma je li taj proces stigao do resursa zbog kojeg postoji. Skripta koja neuspjelu vezu tretira kao prazan rezultat ili hvata grešku i izlazi s nulom izgledat će zdravo zauvijek. Simptom nije crveni status; to je uvjerljiv status prikačen za posao koji nedostaje.

Navedite šta je pokretanju zapravo potrebno prije nego što odlučite kako to provjeriti. Sigurnosna kopija može trebati privatni DNS i autentificiranu krajnju točku, a ne samo proces tunela.

Provjerite vezu, a ne ime interfejsa

Interfejs po imenu tun0 može postojati bez sesije koja je važna, a druga veza može posjedovati to ime. Provjerite konkretni objekt o kojem zadatak ovisi: jedan identitet profila, jedna instanca usluge ili mala odobrena operacija prema resursu. Držite provjeru vremenski ograničenom i držite vjerodajnice izvan argumenata procesa i dijagnostičkih dnevnika.

Definirajte i ishod bez veze. Obično preskakanje, ponovni pokušaj unutar kratkog prozora i propušteni rok vidljiv operateru tri su različita odgovora, a ponavljajući raspored ne bira između njih.

Preskakanja i kvarovi su različiti ishodi

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

Na systemd implementaciji ExecCondition= pokreće taj provjeravač prije radnog opterećenja. Njegovo ponašanje pri izlazu je specifično: nula nastavlja, kodovi od jedan do 254 preskaču preostale naredbe pokretanja bez označavanja jedinice kao neuspjele, a 255 ili abnormalni prekid čini je neuspjelom. To daje tri različita signala, korisna samo ako se ugovor provjeravača namjerno preslika na njih. Postavke koje redefiniraju uspjeh mogu promijeniti sliku, zato dokumentirajte preslikavanje.

Bilježenje preskakanja čini dizajn iskrenim. Preskočeno pokretanje koje se nigdje ne pojavljuje ne razlikuje se od pokretanja koje je uspjelo, a tretiranje svake greške provjeravača kao tihog preskakanja neograničeno skriva pokvareno postavljanje.

Čuvajte cijelo pokretanje, ne samo početak

Provjera spremnosti promatra svijet prije pokretanja; ona ne nadzire svaki socket nakon toga. Kada izravna putanja nikada nije prihvatljiva za ovaj zadatak, priložite odobrenu politiku izlaza koja se primjenjuje neprekidno i pokriva DNS, IPv6 i vlastiti transport tunela. Prebacivanje globalnog stanja IPv6 na hostu nije zamjena za ograničenu politiku na zadatku.

Odlučite može li novi događaj preklopiti zadatak koji još traje, čuvajte to pravilo kod vlasnika radnog opterećenja i učinite ponovni pokušaj sigurnim za operaciju s podacima. Zaustavljanje zadatka pri prekidu veze ograničava posao bez jamstva o prometu preko zamjenskog puta.

Prihvatite tijek rada na tri slučaja: spremna putanja, nedostupna putanja i gubitak tijekom rada. Bilo što manje testira raspored, a ne zadatak.

Povezani članci