Aqbeż il-VPN tad-dar b'systemd ExecCondition
Qbiż apposta u kmand ta' tħejjija maqsum huma riżultati differenti. Iddefinixxi l-kodiċijiet tal-ħruġ tal-għajnuna, imbagħad iċċekkja l-moviment bejn in-netwerks.
Il-VPN tan-netwerk tad-dar m'għandu xejn x'jagħmel meta l-laptop diġà jinsab fuq dak in-netwerk. Is-sultan qasir li jġiegħel huwa kmand ta' tħejjija li joħroġ b'kodiċi mhux żero; dan ifalli l-unit u jagħmel kull dashboard jidher maqsum. systemd għandu direttiva għal dan ix-xorta ta' deċiżjoni, u tifred qbiż apposta minn ħsara vera. Biex tagħmilha sew trid l-aktar tikteb x'jfisser kull kodiċi tal-ħruġ.
Għaliex prekundizzjoni li tfalli hija l-forma ħażina
ExecStartPre jittratta ħruġ mhux żero bħala falliment tal-bidu, li huwa korrett għal kmand li jħejji s-servizz. L-użu tiegħu bħala kundizzjoni jagħmel deċiżjoni ta' politika ma tistax tiġi distinta minn dipendenza maqsuma. ExecCondition jeżisti sabiex unit jista' jirrifjuta li jibda mingħajr ma jiġi mmarkat bħala fallut.
Dik id-distinzjoni timporta fit-tlieta ta' filgħodu, meta ħadd ma jrid janalizza unit aħmar li kien qed iġib ruħu kif iddisinjat. Unit fallut jaħbi wkoll il-ħsarat veri fost dawk apposta.
Ikteb l-ewwel il-kuntratt tal-kodiċi tal-ħruġ
Ikteb il-kuntratt qabel l-iskript. Ħruġ żero jfisser kompli, ħruġ wieħed ifisser aqbeż il-kmandi tal-bidu li fadal, u ħruġ 255 ifisser li l-kundizzjoni stess ma setgħetx taħdem. Kodiċijiet bejn tnejn u 254 normalment ifissru wkoll aqbeż, li huwa faċli tinsa meta l-għajnuna tirritorna kodiċi ta' żball każwali. Id-drop-in hawn taħt iqabbad l-għajnuna mal-isem veru tal-unit.
[Service]
ExecCondition=/usr/local/libexec/should-start-home-vpnIċċekkja l-unit effettiv għal SuccessExitStatus jew settings stop-post eredati qabel ma tassumi s-semantika default. Imbagħad iċċekkja kull wieħed mit-tliet riżultati apposta.
Ħjiel tan-netwerk mhuwiex prova tal-post
Indirizz ta' router li jista' jintlaħaq jew MAC magħruf jistgħu jissuġġerixxu n-netwerk it-tajjeb, u l-ebda wieħed minnhom ma jipprovah. Netwerk ieħor jista' jerġa' juża l-istess indirizz, id-data ARP tista' tkun skaduta, u l-identifikaturi jistgħu jiġu imitati. Ittratta l-verifika bħala ottimizzazzjoni konsistenti mal-politika, mhux bħala riżultat ta' awtentikazzjoni.
Iddeċiedi minn qabel xi jfisser l-inċertezza. Li tibda l-VPN meta ma tkunx ċert huwa sigur għal klijent li sempliċement ma jirnexxilux jikkonnettja; li taqbeżha meta ma tkunx ċert mhuwiex sigur. Agħmel il-verifika limitata, u aqra l-interface attiv minflok tassumi l-ewwel fil-lista. Verifika li tiddendel hija agħar minn waħda li twieġeb le, għax l-unit tistennieha.
Irreġistra dawk is-suppożizzjonijiet ħdejn il-fajl tal-unit sabiex il-persuna li jmiss tkun taf x'injemmen l-għajnuna. Kumment fil-quċċata tal-iskript huwa l-irħas post biex iżżommhom.
Immaniġġja l-moviment bejn in-netwerks
Il-kundizzjoni taħdem meta s-servizz jibda, u ma terġax tiġi evalwata wara. Unit maqbuż jibqa' maqbuż wara li l-laptop jitmexxa lejn kafetterija, u tunnel li jaħdem jibqa' 'l fuq wara li l-laptop jiġi lura d-dar. Qabbad iċ-ċiklu tal-ħajja tal-bidla tan-netwerk mad-deċiżjoni tal-bidu u l-waqfien permezz ta' mekkaniżmu separat.
systemctl cat home-vpn.serviceIċċekkja erba' każijiet: bidu fid-dar, bidu barra, verifika li ma tistax taħdem, u moviment bejn netwerks waqt li l-unit huwa attiv. Żomm ir-raġuni tal-qbiż viżibbli fil-journal sabiex deċiżjoni apposta qatt ma tidher bħala falliment ta' awtentikazzjoni. Ir-referenza tas-servizz tiddokumenta s-semantika tal-ħruġ u l-verżjoni minima.