'n Geskeduleerde taak wat sonder die VPN geloop het, lyk goed
Die status sê sukses en die data ontbreek. Kontroleer elke lopie teen die presiese verbinding en teken oorslaan afsonderlik aan eerder as om die skedule te vertrou.
Die taakstatus sê sukses, die logboek wys 'n voltooide lopie, en die data is verouderd of afwesig. Daardie kombinasie beteken gewoonlik dat die geskeduleerde taak begin het sonder die pad wat dit nodig gehad het, en iets stroomaf het die fout ingesluk. 'n Skedule wat betyds vuur, sê niks oor of die netwerk gereed was nie. Die gaping tussen daardie twee feite is waar hierdie fout leef.
Toelating hoort by die lopie, nie by die bestaan van 'n cron-lêer nie.
'n Groen lopie is nie 'n voltooide taak nie
'n Skeduleerder merk dat 'n proses begin en later geëindig het; dit het geen idee of daardie proses die hulpbron bereik het waarvoor dit bestaan nie. 'n Skrip wat 'n mislukte verbinding as 'n leë resultaat behandel, of 'n fout vang en met nul uitgaan, sal vir ewig gesond lyk. Die simptoom is nie 'n rooi status nie; dit is 'n geloofwaardige status wat aan ontbrekende werk gekoppel is.
Noem wat die lopie werklik nodig het voordat jy besluit hoe om dit te kontroleer. 'n Rugsteun kan private DNS en 'n geauthentiseerde eindpunt nodig hê, nie bloot 'n tonnelproses nie.
Kontroleer die verbinding, nie die koppelvlaknaam nie
'n Koppelvlak met die naam tun0 kan bestaan sonder die sessie wat saak maak, en 'n ander verbinding kan daardie naam besit. Kontroleer die spesifieke objek waarvan die taak afhang: een profielidentiteit, een diensinstansie, of 'n klein goedgekeurde bewerking teen die hulpbron. Hou die kontrole tydsgebonde, en hou geloofsbriewe uit prosesargumente en diagnostiese logboeke.
Definieer ook die ontkoppelde uitkoms. 'n Gewone oorslaan, 'n herprobeer binne 'n kort venster en 'n operateur-sigbare gemiste spertyd is drie verskillende antwoorde, en 'n herhalende skedule kies nie tussen hulle nie.
Oorslaan en mislukkings is verskillende uitkomste
[Service] Type=oneshot User=worker ExecCondition=/usr/local/libexec/check-office-path ExecStart=/usr/local/bin/private-task
Op 'n systemd-ontplooiing laat ExecCondition= daardie kontroleerder voor die werklas loop. Die uittreegedrag is spesifiek: nul gaan voort, kodes van een tot 254 slaan die oorblywende beginopdragte oor sonder om die eenheid as misluk te merk, en 255 of abnormale beëindiging laat dit misluk. Dit gee drie afsonderlike seine, nuttig net as die kontroleerder se kontrak doelbewus daarop afgebeeld word. Instellings wat sukses herdefinieer kan die prentjie verander, so dokumenteer die kartering.
Om oorslaan aan te teken, is wat die ontwerp eerlik maak. 'n Oorgeslaande lopie wat nêrens verskyn nie, is nie van 'n lopie wat geslaag het te onderskei nie, en om elke kontroleerderfout as 'n stil oorslaan te behandel, verberg 'n stukkende ontplooiing onbepaald.
Beskerm die hele lopie, nie net die begin nie
'n Gereedheidskontrole waarneem die wêreld voor die bekendstelling; dit polisieer nie elke sokkel daarna nie. Wanneer 'n direkte pad nooit vir hierdie taak aanvaarbaar is nie, heg 'n goedgekeurde uitgangsbeleid wat deurlopend afgedwing word, wat DNS, IPv6 en die tonnel se eie vervoer dek. Om die gasheer se globale IPv6-toestand te wissel, is nie 'n plaasvervanger vir 'n beperkte beleid op die taak nie.
Besluit of 'n nuwe gebeurtenis 'n steeds lopende taak mag oorvleuel, hou daardie reël by die werklas-eienaar, en maak herprobeer veilig vir die data-bewerking. Om 'n taak op ontkoppeling te stop, beperk werk sonder om iets oor terugvalverkeer te waarborg.
Aanvaar die werkvloei op drie gevalle: gereed pad, onbeskikbare pad, en verlies tydens die lopie. Enigiets minder toets die skedule, nie die taak nie.