Að keyra systemctl start openvpn-client@office og fá skilaboð um að kerfið hafi ekki verið ræst með systemd virðist vera þjónustubilun. Þetta er alls ekki þjónustubilun: systemctl, sem þú kallaðir, finnur engan keyrandi stjórnanda til að tala við, svo ekkert var skoðað varðandi OpenVPN. sudo býr ekki til stjórnanda, og uppsetning unit-skrár gerir það ekki heldur. Skipunin og vélin koma úr tveimur ólíkum heimum, og villan er eini staðurinn þar sem það kom í ljós.

Byrjaðu á að spyrja hvaða ferli á PID 1 þar sem skipunin keyrir, því það svar ræður því hvort unit eru til yfirleitt.

Villan nefnir umhverfið, ekki OpenVPN

systemctl er biðlari, ekki stjórnandi. Hann tengist kerfisstjórnandanum í gegnum socket, og þegar enginn stjórnandi er hinum megin prentar hann skilaboðin sem fólk límir á spjallborð. ps -p 1 -o pid=,comm= sýnir hvað raunverulega keyrir sem PID 1, og svarið er oft shell, init-umbúðir eða innkomustaður gámsins sjálfs. Í slíkri stöðu getur unit-skrá verið algjörlega gild og samt aldrei verið lesin. Að endurtaka skipunina sem root breytir aðeins skírteinum biðlarans.

Lestu allt skilaboðin á undan fyrstu línunni. Villa frá stjórnandanum sjálfum, eins og unit sem vantar eða skilyrði sem mistókst, þýðir að þú náðir einum; þessi villa þýðir að þú gerðir það ekki.

WSL: að virkja systemd er stillingabreyting

WSL fékk stuðning við systemd í síðari útgáfum, en eiginleikinn er virkjaður fyrir hverja dreifingu og aðeins þar sem uppsetta WSL-útgáfan styður hann. wsl --version á Windows-hliðinni sýnir hvað þú hefur, og /etc/wsl.conf dreifingarinnar inniheldur [boot] hluta með systemd=true. Breyttu þeirri skrá án þess að fjarlægja hlutana sem þegar eru þar, og endurræstu síðan WSL-tilvikið svo breytingin taki gildi. wsl --shutdown stöðvar hverja keyrandi dreifingu, svo vistaðu vinnuna þína fyrst.

Eftir að hafa opnað aftur, staðfestu stjórnandann áður en þú snertir OpenVPN-unit: ps -p 1 -o comm= ætti að sýna systemd. Að virkja systemd gefur enga prófíl, engin skírteini og ekkert tilviksheiti, svo næsta villa mun varða eitt þeirra en ekki PID 1.

Gámarnir keyra innkomustað sinn, ekki unit

Venjulegur gámur ræsir það sem innkomustaður hans eða skipun tilgreinir, og hann er ekki vél sem er ræst með systemd, sama hvaða pakka þú setur upp. Að bæta systemctl við ímyndina gefur þér biðlara sem hefur ekkert til að tengjast. Fyrir Community OpenVPN er studda mynstrið venjulega ferli í forgrunni, openvpn --config /path/to/client.conf, ræst af innkomustaðnum og haft eftirlit með utan frá. Sá eigandi sér um ræsingu, merki og slokknun, og hann ætti að vera eina hluturinn sem stýrir göngunum.

Byrjaðu aldrei gagnvirkt eintak við hlið innkomustaðar sem stýrir þegar þeim göngum, því tvö ferli munu berjast um tækið og leiðirnar. Lágmarks init-ferli inni í gámnum safnar börnum og sendir merki áfram; það gerir ímyndina ekki að hýsli með unit.

Ef uppsetning þarf raunverulega systemd inni í gámi þarf hún ímynd sem er hönnuð viljandi fyrir það, ekki aukaforréttindi sem bætt er við þar til systemctl hættir að kvarta.

Lestu næstu villu þegar stjórnandinn er til

Um leið og raunverulegur stjórnandi ræsir þjónustuna byrja gagnlegu villurnar. Bilun í tækisheimild, villa í stillingarþáttun, skírteini sem vantar og jafningi sem ekki er hægt að ná í eru fjögur ólík vandamál sem skilaboðin um PID 1 prófuðu aldrei. Lestu þau í þeirri röð sem unitið framleiddi þau, með journalctl -u openvpn-client@office -n 50 á systemd-hýsli, eða með því að keyra biðlarann í forgrunni þar sem enginn stjórnandi er. Keyrsla í forgrunni er líka fljótlegasta leiðin til að staðfesta að prófíllinn sjálfur virki.

Haltu umhverfunum tveimur aðskildum í athugasemdunum þínum: hýslinum sem keyrir göngin, og staðnum þar sem þú slærð inn skipanir.

Tengdir greinar