It up-skript rint, giet mei nul út, en de taak derbinnen hellet in partikuliere tsjinst net dy’t twa sekonden letter perfekt fanôf in terminal wurket. It ynstinkt is timing, en de gewoane reparaasje is in sliep, dy’t de race ferbergt sûnder him te begripen. De brûkberder lêzing is dat “up” in haak neamt, gjin garânsje fan gereedheid. It fjurret as it tunnelapparaat konfigurearre wurdt, wat earder is as rûtes, DNS en grif earder as hokker applikaasje efter de tunnel dan ek.

De shelltest slagge om’t er rûn neidat alles ta rêst kommen wie. De haak rûn op ien spesifyk momint.

Wêr’t up yn de opstartfolchoarder stiet

OpenVPN konfigurearret it tunnelapparaat en rint dan de up-haak. Rûte-ynstallaasje is in lettere faze, en it hat syn eigen haak, dêrom kin in rûte-ôfhinklike taak dy’t yn up pleatst is in apparaat sûnder brûkber paad sjen. Pleats rûtewurk yn route-up en it timingprobleem ferdwynt meastentiids.

De hantlieding dokumintearret dizze folchoarder en it omjouwing dy’t elke haak krijt. Dy folchoarder is de hiele ferklearring foar it klassike rapport “it wurket fan myn shell”, en it is ek wêrom’t itselde skript op ien masine slagje kin en op in oare mislearje mei in stadiger rûtefaze. Gjin fan beide resultaten seit eat oer de kwaliteit fan it skript.

DNS- en applikaasjegereedheid komt noch letter. Sels ynstallearre rûtes binne gjin bewiis dat it fiere ein harket, dat in namme oplost, of dat der in buroblêdsesje bestiet foar in taak dy’t oan in brûker bûn is.

Wat de haak eins erft

In haak rint ûnder it akkount en de omjouwing fan it OpenVPN-proses, wat net itselde is as dyn ynteraktive shell. It kin in sesjebus fan in brûker, in buroblêdomjouwing of in ynloggegevens misse dy’t allinnich by oanmelding ûntsluten wurdt. Skriuw op hokker fan dy de taak eins nedich hat.

Dat makket út foar taken dy’t op netwurk lykje mar fan in brûkerskontekst ôfhinklik binne: in partikuliere dieling mounte mei in brûkersynloggegevens, in proxy per brûker ynstelle of in printer konfigurearje. In befoarrjochte tunnelhaak is it ferkearde plak foar har, en gjin hoemannichte wachtsjen reparearret in ûntbrekkende sesje.

As in taak yn in haak mislearret, notearje it akkount, de omjouwing en de earste operaasje dy’t mislearre. Dat skiedt te betide timing fan in tastimming- of kontekstprobleem, en de twa hawwe folslein ferskillende reparaasjes. Tusken har beiden riede is hoe’t in fiifminutenreparaasje in hiele middei wurdt.

Wêrom’t it tafoegjen fan in sliep gjin gereedheidskontrôle is

In sliep fertraget it skript en ferskoot it racefinster. Op in flugge dei slagget de taak; op in stadige dei mislearret er wer, en de mislearring wurdt hurder te reprodusearjen om’t de fertraging liket te wurkjen. In fertraging dy’t allinnich ûnder lichte lading wurket is in tafal, gjin reparaasje.

As de ôfhinklikheid in rûte is, brûk de haak dy’t by rûte-ynstallaasje heart. As de ôfhinklikheid in tsjinst efter de tunnel is, brûk in beheinde kontrôle dy’t op dy spesifike betingst wachtet en dúdlik mislearret as er nea oankomt.

Hâld de mislearring eksplisyt. In haak dy’t mei nul útgiet wylst syn echte wurk mislearre is, is slimmer as in haak dy’t mislearret, om’t de tsjinstbehearder in sukses registrearret en nimmen wer sjocht. In logrigel út it skript sels is de bêste manier om dat earlik te hâlden.

Opromjen en werferbinen fertsjinje deselde soarch

In skript dat dielde tastân feroaret hat in byhearrende ûngedienmakingspaad nedich. Rûtes, oplosser-yngongen en firewallmarkearrings dy’t in haak tafoeget moatte idempotint en weromdraaibaar wêze, oars sil in werferbining in twadde kopy op de earste stapelje.

Werferbiningen kinne haken ek faker rinne litte as in folsleine tsjinststart. In permanint ynterface dat in sesje wer opbouwt kin de up- en route-up-syklus wer aktivearje, sadat in skript dat ien útfiering per opstart oannimt úteinlik ferkeard gedraacht. Tel de útfieringen yn it log oer in dei fan fladderjen om te sjen hoe faak’t er echt rint. Meitsje it skript dan feilich om sa faak te rinnen.

Test de libbenssyklus dy’t mislearre, net in letter kommando. Reproduzearje de opstart of de werferbining, sjoch de haak útfierd wurde, en befêstigje dat de taak slagge op it momint dat er echt rint. In sukses út in ynteraktive shell dêrnei is bewiis oer de ôfhinklikheid, gjin bewiis dat it opstartpaad wurket.

Nammet it barren dêr’t elke taak fan ôfhinklik is, en ferbyn it dan oan dat barren. Al it oare is in fertraging dy’t him foardocht as in kontrôle.

Relatearre artikelen