Kwa nini kitengo cha VPN huanza kabla ya mtandao kisha kufa
Kitengo kinachoanza kabla kiungo hakijapata anwani hushindwa kwa namna inayoonekana kuwa ya nasibu. Thibitisha mpangilio kutoka kwenye jarida, kisha ongeza kusubiri na jaribio jingine.
Washa mashine, ingia, na ugundue kuwa handaki liliinuka na kufa sekunde chache baadaye. Wasifu ulikuwa sawa, cheti kilikuwa sawa, na alama pekee iliyobaki ni jarida la uwasaji huo. Kilichotokea kwa kawaida ni mashindano: kitengo kilianza kabla mashine haijapata anwani, na mpangilio ulioumatangaza haukuwa na maana inavyoonekana. Kila kitu hapa chini kinahusu kuthibitisha mashindano hayo kutoka kwa ushahidi na kuyafunga ipasavyo.
Lengo ni sehemu ya kukutania, si msimamizi
network-online.target haijui mtandao ni nini. Ni sehemu ya uratibu inayokusanya huduma inayopaswa kuchelewesha kuanza hadi kiungo kiweze kutumika, na inakabidhi ufafanuzi kwa msimamizi wa mtandao anayemiliki mashine. Kwenye kompyuta nyingi za mezani na seva hiyo inamaanisha huduma ya kusubiri inayotolewa na NetworkManager au systemd-networkd. Usipowasha yoyote, lengo halina cha kusubiri, kwa hiyo hukamilika pale kitu kinapolivuta ndani, na hilo linaweza kuwa muda mrefu kabla DHCP ijibu. Mstari wa mpangilio katika kitengo chako ulikuwa wa kweli na hata hivyo hauna faida.
Kwa hiyo swali la kwanza si kile kitengo chako kinatangaza. Ni kama kuna kitu kwenye mashine hii kinachofanya kusubiri kwa kweli.
Soma uwasaji wa mwisho badala ya faili ya kitengo
Faili za vitengo zinaeleza nia, na jarida linaeleza kilichotokea. Omba uwasaji huo pekee, ukiwa na mihuri ya muda isiyobadilika ili kila ujumbe uketi kwenye saa moja. Kisha pata mistari miwili: wakati kitengo cha handaki kilipoanza kuanza, na wakati anwani ilipoonekana au huduma ya kusubiri ilipoisha. Panga namba hizo mbili na mashindano ama yanathibitishwa ama yanaondolewa.
Mwonekano wa utegemezi unathibitisha hilo. Ikiwa mnyororo muhimu kwa kitengo cha handaki hauna huduma ya kusubiri, hakuna kitu kwenye njia hiyo kilichelewesha kuanza, na lengo halikufanya kazi uliyodhani. Mionekano miwili, hitimisho moja.
systemctl list-units --type=service --state=running | grep wait-online
journalctl -b -o short-monotonic -u openvpn-client@office
Ongeza kusubiri, kisha jaribio jingine
Tumia drop-in badala ya kuhariri kitengo kilichofungashwa, ili sasisho la kifurushi lisitupe mabadiliko kwa kimya. Maagizo mawili ni muhimu: kitengo lazima kipangwe baada ya lengo, na lazima kivute lengo kwenye muamala mmoja. Mpangilio pekee hauwiiti lengo; hamu ndiyo inayofanya hivyo.
Kitengo kilichofungashwa cha mteja wa OpenVPN tayari hubeba vyote viwili. Vitengo vilivyoandikwa kwa mkono kwa kawaida hubeba kimoja au hakuna, jambo ambalo linafaa kukaguliwa kabla ya kuongeza chochote.
[Service]
Restart=on-failure
RestartSec=15
Kwa nini usingizi usiobadilika ni mtego
Usingizi ndani ya ExecStartPre huhisi kama marekebisho ya mpangilio na hujiendesha kama ucheleweshaji wenye hatua za ziada. Hupunguza kasi ya kila uwasaji, ikiwa ni pamoja na zile zilizokuwa nzuri, na bado hushindwa kiungo kinapochukua muda mrefu kuliko namba uliyochagua.
Mbaya zaidi, huficha kama huduma ya kusubiri inafanya kazi, kwa hiyo kushindwa kunakofuata kunaonekana kama tatizo jipya kabisa badala ya yale yale kwa muda tofauti. Ucheleweshaji mfupi wa kuanza upya ni chombo bora: haugharimu kitu kwenye uwasaji mzuri na hugeuza mashindano yaliyoshindwa kuwa jaribio jingine. Weka muda kati kuwa wa kiasi na uache kitengo kifanikiwe. Ikiwa kinaanza upya milele, wasifu umevunjika na idadi yoyote ya majaribio haiwezi kubadilisha hilo, kwa hiyo soma kumbukumbu badala ya kuongeza muda kati.
Wakati mpangilio ni sahihi na majina bado yanashindwa
Kitengo kinachofanya kazi chenye njia ya handaki kinamaanisha mpangilio ulifanya kazi yake na hitilafu iliyobaki iko tabaka moja juu. Umbo la kawaida ni mpangilio wa kitatuzi unaotumiwa na script ya up ya handaki kabla kiungo au kitatuzi hakijawa tayari kukishikilia. Linganisha hali ya kitatuzi wakati wa kushindwa na hali baada ya kuanza upya kitengo cha handaki.
Ikiwa kuanza upya kunarekebisha utafutaji, una kasoro ya mpangilio wa kuanza na si seva ya DNS isiyo sahihi, na hizo mbili zinahitaji marekebisho tofauti. Kisha thibitisha jambo lote kwa uwasaji baridi badala ya kuanza upya huduma, kwa sababu kuanza upya hufanya kazi dhidi ya mtandao ambao tayari umepanda na utaficha hasa kasoro unayoifuatilia. Rudia hilo ukiwa umechelewesha kiungo kwa makusudi, na chukulia kitengo kinachofanya kazi tu wakati mtandao ni wa haraka kuwa bado kimevunjika.