Ang babala tungkol sa maraming script ay parang reklamo sa pag-iiskedyul, kaya ang halatang lunas ay muling ayusin ang mga linya hanggang mawala ito. Hindi ito reklamo sa pag-iiskedyul. Pinapalitan ng mas huling depinisyon ng --up ang utos na nakatago na para sa yugtong iyon, at sinasabi ito ng parser, ibig sabihin, sa dalawa mong script ay eksaktong isa lang ang tumakbo kailanman. Ang isa ay hindi nakapila sa likod nito; wala na ito.

Kaya nga karapat-dapat pansinin ang babala kahit hindi ito nakamamatay: ang hinuhulaan nito ay isang pag-update ng DNS o pagbabago ng ruta na tahimik na tumigil mangyari.

Ang babala ay hindi tungkol sa pagkakasunod-sunod

OpenVPN ay nagtatago ng isang utos ng script ng user para sa yugtong up. Kapag nakatagpo ang parser ng ibang depinisyon, mula sa profile, sa isang kasamang file o sa command line, pinapalitan nito ang hawak na nito at inilalabas ang babala. Walang pinagsasama, walang tumatakbo nang dalawang beses, at walang tanong sa pagkakasunod-sunod. Ang utos na natitira ay ang huling nakita ng parser, kaya ang paglipat ng linya ay maaaring magpalit ng panalo habang ang isa pang script ay nananatiling patay.

Parehong pattern ang umiiral sa iba pang yugto ng script: isang utos bawat isa. Kung dalawang gawain ang kailangang mangyari kapwa, kailangan nila ng isang pasukan, hindi dalawang tagubiling parang listahan.

Hanapin ang dalawang depinisyon sa tunay na paglulunsad

Simulan sa aktwal na natanggap ng daemon, hindi sa profile na inedit mo. Ipinapakita ng ps -ef at ng ExecStart ng unit ang command line, na maaaring magdagdag ng --up mula sa pasukan ng container o sa wrapper; magagawa rin ito ng init file ng isang distribusyon. Isinisiwalat ng systemctl cat openvpn-server@server ang idinadagdag ng serbisyo mismo, at ang recursive grep sa direktoryo ng configuration ay nakakahanap ng mga depinisyon sa antas ng file. Karaniwang galing sa iba't ibang layer ang mga duplicate, at iyon ang dahilan kung bakit walang nababago sa pag-edit ng isang file.

Ang pagkopya ng script sa ibang direktoryo o pagpapalit ng pangalan ay hindi rin nag-aalis ng tagubilin. Binibilang ng parser ang mga depinisyon, hindi ang mga file.

Hayaang isang hook ang magmay-ari ng trabaho

Ang pangmatagalang lunas ay isang dispatcher na nagpapatakbo ng dalawang aksyon sa sinadyang pagkakasunod-sunod. Ang maikling shell script na may set -eu na tumatawag sa kinakailangang integrasyon at pagkatapos sa lokal na aksyon, at nagpapasa ng "$@" upang manatili ang mga hangganan ng argumento, ay nagpapanatili ng pag-uugali sa isang lugar na masusuri. Ang pagpapasa ng argumento ay pinapanatili lamang ang mga ito; hindi nito pinatutunayan na pareho ang inaasahang interface ng dalawang katulong, kaya basahin ang kontrata ng bawat isa. Magpasya kung ano ang dapat gawin ng kabiguan at kung kailangang ibalik ang mga bahagyang pagbabago.

Kung nag-aalok ang launcher ng sinusuportahang extension hook, piliin ito kaysa sa gawang-kamay na pagkakadena. Ang container image o pakete ng vendor ay madalas may dokumentadong lugar para sa dagdag na trabaho, at ang paggamit nito ay pumipigil sa pag-upgrade na ma-overwrite ang dispatcher mo.

Ang paglilinis ay kabilang sa katumbas na yugto ng down. Ang aksyong up na nagsusulat muli ng DNS o nagdadagdag ng ruta ay nangangailangan ng dokumentadong pagbabalik, at ang dispatcher na humahawak lamang sa pagsisimula ay kalahating disenyo.

Kumpirmahin ang integrasyon, hindi lamang ang katahimikan

Ang pag-alis ng babala sa duplicate ay ang madaling bahagi; kailangan pa ring gumana ang integrasyon. Suriin ang estado ng resolver pagkatapos kumonekta gamit ang resolvectl status o sa pagbasa ng /etc/resolv.conf, at kumpirmahin ang mga ruta gamit ang ip route. Pagkatapos ay idiskonekta at kumonekta muli, dahil ang hook na mabilis na ikinadena ay may tendensiyang mag-iwan ng isang bagay mula sa nakaraang sesyon. Ipinapakita ng journalctl -u openvpn-server@server -b kung tumakbo ang dispatcher mo at ano ang inilabas nito.

Panatilihin ang mga pribilehiyo ng hook sa tamang lugar. Ang pagtaas ng script-security o pagpapatakbo ng daemon na may mas maraming karapatan ay hindi lunas para sa pinalitang hook; pinalalawak nito ang magagawa ng bawat hinaharap na script, kasama ang isa na papangalanan ng umaatake.

Ang tanda na totoo ang lunas ay hindi ang katahimikan sa log. Ito ang sagot ng DNS, ang entry ng ruta at ang paglilinis na gumagana lahat pagkatapos ng dalawang muling pagkonekta.

Kaugnay na mga artikulo