Kapag pinatakbo mo ang systemctl start openvpn-client@office at nakatanggap ng mensahe na ang sistema ay hindi na-boot gamit ang systemd, mukha itong pagkabigo ng serbisyo. Hindi ito pagkabigo ng serbisyo: ang systemctl na tinawag mo ay walang makitang tumatakbong tagapamahala na kakausapin, kaya wala rin sa OpenVPN ang nasuri. sudo ay hindi gumagawa ng tagapamahala, at ang pag-install ng unit file ay hindi rin gumagawa niyon. Ang utos at ang makina ay galing sa dalawang magkaibang mundo, at ang error lang ang lugar kung saan ito lumitaw.

Simulan sa pagtatanong kung aling proseso ang may hawak ng PID 1 doon kung saan tumatakbo ang utos, dahil ang sagot na iyon ang magtatakda kung may unit man o wala.

Pinapangalanan ng error ang kapaligiran, hindi ang OpenVPN

systemctl ay isang kliyente, hindi tagapamahala. Kumokonekta ito sa tagapamahala ng sistema sa pamamagitan ng socket, at kapag walang tagapamahala sa kabilang dulo, ipinapakita nito ang mensaheng idinidikit ng mga tao sa mga forum. ps -p 1 -o pid=,comm= ay nagpapakita kung ano talaga ang tumatakbo bilang PID 1, at ang sagot ay madalas isang shell, isang balot ng init o ang sariling pasukan ng lalagyan. Sa ganoong kalagayan, ang unit file ay puwedeng ganap na wasto at hindi pa rin kailanman mabasa. Ang pag-uulit ng utos bilang root ay nagbabago lamang ng mga kredensyal ng kliyente.

Basahin ang buong mensahe bago ang unang linya. Ang error mula sa tagapamahala mismo, tulad ng nawawalang unit o nabigong kundisyon, ay nangangahulugang naabot mo ito; ang error na ito ay nangangahulugang hindi.

WSL: ang pagpapagana ng systemd ay pagbabago sa config

Nagkaroon ng suporta sa systemd ang WSL sa mga huling release, ngunit pinapagana ang tampok na ito sa bawat distribusyon at kung saan lang sinusuportahan ng naka-install na bersyon ng WSL. wsl --version sa bahagi ng Windows ay nagpapakita kung ano ang mayroon ka, at ang /etc/wsl.conf ng distribusyon ay may [boot] seksiyon na may systemd=true. I-edit ang file na iyon nang hindi tinatanggal ang mga seksiyong naroon na, pagkatapos i-restart ang instance ng WSL upang magkabisa ang pagbabago. wsl --shutdown ay humihinto sa bawat tumatakbong distribusyon, kaya i-save muna ang trabaho.

Pagkatapos buksan muli, kumpirmahin ang tagapamahala bago hawakan ang unit ng OpenVPN: ps -p 1 -o comm= ay dapat magpakita ng systemd. Ang pagpapagana ng systemd ay hindi nagbibigay ng profile, kredensyal o pangalan ng instance, kaya ang susunod na error ay tungkol sa isa sa mga iyon, hindi sa PID 1.

Pinapatakbo ng mga lalagyan ang kanilang pasukan, hindi ang unit

Ang normal na lalagyan ay nagpapatakbo ng itinakda ng pasukan o utos nito, at hindi ito makina na na-boot gamit ang systemd, anuman ang i-install mong pakete. Ang pagdaragdag ng systemctl sa image ay nagbibigay sa iyo ng kliyenteng walang maidudugtong. Para sa Community OpenVPN, ang sinusuportahang huwaran ay karaniwang prosesong tumatakbo sa harapan, openvpn --config /path/to/client.conf, na sinisimulan ng pasukan at binabantayan mula sa labas. Ang may-ari na iyon ang humahawak sa pagsisimula, mga senyales at pagpapatay, at dapat itong maging tanging bagay na namamahala sa tunel.

Huwag kailanman magsimula ng interaktibong kopya sa tabi ng pasukang namamahala na sa tunel na iyon, dahil mag-aagawan ang dalawang proseso sa device at sa mga ruta. Ang pinakamaliit na prosesong init sa loob ng lalagyan ay nag-iipon ng mga anak at nagpapasa ng senyales; hindi nito ginagawang host na may unit ang image.

Kung ang isang deployment ay talagang kailangan ng systemd sa loob ng lalagyan, kailangan nito ng image na sadyang dinisenyo para doon, hindi karagdagang pribilehiyong idinadagdag hanggang systemctl ay tumigil sa pagrereklamo.

Basahin ang susunod na error kapag may tagapamahala na

Kapag nagsimula ang tunay na tagapamahala sa serbisyo, nagsisimula ang mga kapaki-pakinabang na error. Pagkabigo ng pahintulot sa device, error sa pag-parse ng config, nawawalang kredensyal at hindi maabot na kapares ay apat na magkaibang problema na hindi kailanman sinubukan ng mensahe tungkol sa PID 1. Basahin ang mga ito sa pagkakasunod-sunod na ginawa ng unit, gamit ang journalctl -u openvpn-client@office -n 50 sa host na systemd, o sa pagpapatakbo ng kliyente sa harapan kung saan walang tagapamahala. Ang pagpapatakbo sa harapan ay ang pinakamabilis na paraan din upang kumpirmahing gumagana ang profile mismo.

Panatilihing hiwalay ang dalawang kapaligiran sa iyong mga tala: ang host na nagpapatakbo ng tunel, at ang lugar kung saan ka nagta-type ng mga utos.

Kaugnay na mga artikulo