In tsjinst opnij starte by OpenVPN up: heakken ferslaan tun0.device
In apparaat-ienheid folget it ynterface, net de ferbining. Kies up of route-up foar de betingst dy't de tsjinst nedich hat, en stjoer dan in net-blokkearjende werstart.
In ôfhinklike tsjinst oan tun0.device keppelje liket op it túnel abonnearjen, en dat is it net. In apparaat-ienheid werjaan wol dat it ynterface bestiet, wat wier bliuwe kin troch in mislearre ferbining en de weryntsjending dy't dêrop folget. Dan hannelt de tsjinst op it ferkearde momint, of nea, ôfhinklik fan oft it ynterface tuskentroch ferdwûn is. De heak dy't it barren beskreau dêr't jo echt om jouwe, is dejinge dy't OpenVPN oanropt, net dejinge dy't systemd ôfliedt.
Beslis hokker betingst de tsjinst nedich hat foardat jo de trigger kieze, want de trije kandidaten binne net útwikselber.
Wat de apparaat-ienheid eins folget
systemd makket in apparaat-ienheid fan 'e kearn syn werjefte fan in netwurk-ynterface, dus tun0.device wurdt aktyf as it ynterface ferskynt en ynaktyf as it fuorthelle wurdt. Mei persist-tun hâldt in sêfte werstart it ynterface op syn plak, sadat de ienheid nea flappet en neat dat dêroan bûn is, aktivearre wurdt. Sels sûnder persistinsje seit de ienheid neat oer rûtes, DNS of oft it fiere ein antwurdet.
Dat makket it in minne steadferfanger foar 'de VPN is klear'. In listener dy't allinnich it lokale adres nedich hat, kin tefreden wêze mei it bestean fan it ynterface, wylst in tsjinst dy't in applikaasje op it fiere netwurk oanropt, rûtes en berikberens nedich hat, wat de apparaat-ienheid net útdrukke kin.
up, route-up en up-restart betsjutte ferskillende dingen
up rint nei't it TUN/TAP-apparaat iepene en it ynterface konfigurearre is, wat it juste momint is foar in listener dy't it tawizze adres bûnt. route-up rint nei't rûtes ynstalleare binne, ûnderwurpen oan elke konfigurearre rûtefertraging, en past by wurk dat de rûtefaze foltôge nedich hat. Gjin fan beide bewiist dat de fiere applikaasje antwurdet. Kieze tusken har is in fraach oer wat de tsjinst nedich hat, net oer hokker heak foltôge klinkt.
Mei persist-tun brûke werstarts it apparaat opnij, dus up rint net opnij, útsein as up-restart ynésteld is. Dy opsje aktivearret it up-skript foar de dokumintearre werstart-libbenssyklus, en syn omjouwing is fermindere yn ferliking mei in earste start. In skript dat de folsleine omjouwing oannimt, wurket op 'e earste ferbining en mislearret op 'e folgjende.
Stjoer de aksje sûnder derop te wachtsjen
In heak dy't systemctl restart synchroan oanropt, kin deadlock krije tsjin in ienheid wêrfan't de oardering op 'e túnel wachtet. systemctl --no-block try-restart vpn-dependent.service set it taak yn 'e wachtrige en komt werom, wat foarkomt dat de heak de ferbining blokkearret dêr't er op reagearre. try-restart hannelt allinnich op in rinnende ienheid, wylst restart ek in ynaktive start; kies bewust, net út gewoante.
Yn 'e wachtrige sette is gjin ferifikaasje. De heak jout sukses werom sa gau't it taak akseptearre is, dus de kontrôle moat barre yn it sjoernaal fan 'e doeliendienheid of yn har werklike listener-steat.
Werstartbelied wennet yn 'e ienheid, net yn 'e heak
In oneshot-ienheid mei RemainAfterExit=yes bliuwt aktyf nei't har opdracht ôfrûn is, en in twadde startfersyk docht neat omdat systemd it al as start beskôget. Dat is in eigenskip om omhinne te ûntwerpen, gjin defekt om mei werhelle startoproppen te omseiljen. As de aksje per ferbining rinne moat, hat de ienheid in foarm nedich dy't dat talit.
After= oardent ienheden, en BindsTo= bynt libbensdoer, mar gjin fan beide betsjut 'werstart dit elke kear as de VPN wer ferbynt'. In ienheid bûn oan 'e túnel stopet as de túnel stopet; se werstartet harsels net as de túnel weromkomt, útsein as iets har wer start.
Test trije weryntsjendings, gjin ien
Kâlde start, in folsleine klant-werstart en in sêfte weryntsjending oefenje elk in oar paad. De sêfte weryntsjending is dejinge dy't in ûntbrekkende up-restart, in fermindere omjouwing of in apparaat-ienheid dy't nea ynaktyf wurden is, bleatleit. Rin alle trije en befêstigje beide rjochtings: de tsjinst hannelt as de túnel omheech komt, en se werstartet net by net-relatearre keppelingsferoarings lykas Wi-Fi-roming.
Hâld in ûnôfhinklik herstelpaad as de ôfhinklike tsjinst jo eigen behearstagonklikheid draacht. In heak dy't it ding werstart dêr't jo troch ferbûn binne, is in feroaring dy't jo bûten slute kin.