Pokretanje systemctl start openvpn-client@office i dobijanje poruke da sistem nije podignut sa systemd-om izgleda kao kvar usluge. To nije nikakav kvar usluge: systemctl koji ste pozvali ne može pronaći pokrenuti menadžer s kojim bi razgovarao, pa ništa o OpenVPN-u nije ni provjereno. sudo ne stvara menadžer, a ni instaliranje unit datoteke ga ne stvara. Naredba i mašina dolaze iz dva različita svijeta, a greška je jedino mjesto gdje se to pokazalo.

Počnite pitanjem koji proces drži PID 1 tamo gdje se naredba izvršava, jer taj odgovor odlučuje postoje li unit datoteke uopće.

Greška imenuje okruženje, a ne OpenVPN

systemctl je klijent, a ne menadžer. Povezuje se sa sistemskim menadžerom preko socketa, a kada na drugoj strani nema menadžera, ispisuje poruku koju ljudi lijepe na forume. ps -p 1 -o pid=,comm= pokazuje šta zapravo radi kao PID 1, a odgovor je često shell, init omotač ili vlastita ulazna točka kontejnera. U takvoj situaciji unit datoteka može biti potpuno ispravna i ipak nikada ne bude pročitana. Ponavljanje naredbe kao root mijenja samo vjerodajnice klijenta.

Pročitajte cijelu poruku prije prvog reda. Greška samog menadžera, poput nedostajuće unit datoteke ili neuspjelog uslova, znači da ste do njega stigli; ova greška znači da niste.

WSL: uključivanje systemd-a je promjena konfiguracije

WSL je dobio podršku za systemd u kasnijim izdanjima, ali se funkcija uključuje po distribuciji i samo tamo gdje je podržava instalirana verzija WSL-a. wsl --version na strani Windowsa pokazuje šta imate, a /etc/wsl.conf datoteka distribucije nosi [boot] odjeljak sa systemd=true. Uredite tu datoteku bez uklanjanja odjeljaka koji već postoje, zatim ponovo pokrenite instancu WSL-a da promjena stupi na snagu. wsl --shutdown zaustavlja svaku pokrenutu distribuciju, pa prvo sačuvajte rad.

Nakon ponovnog otvaranja potvrdite menadžer prije nego što dirnete unit datoteku OpenVPN-a: ps -p 1 -o comm= bi trebalo da prikaže systemd. Uključivanje systemd-a ne daje profil, vjerodajnicu ni naziv instance, pa će se sljedeća greška ticati jednog od toga, a ne PID 1.

Kontejneri pokreću svoju ulaznu točku, ne unit datoteke

Normalan kontejner pokreće ono što odredi njegova ulazna točka ili naredba i nije mašina podignuta sa systemd-om, bez obzira koje pakete instalirate. Dodavanje systemctl u sliku daje vam klijent koji se nema s čim povezati. Za Community OpenVPN podržani obrazac je obično proces u prvom planu, openvpn --config /path/to/client.conf, koji pokreće ulazna točka i koji se nadzire izvana. Taj vlasnik brine o pokretanju, signalima i zaustavljanju i trebao bi biti jedino što upravlja tunelom.

Nikada ne pokrećite interaktivnu kopiju uz ulaznu točku koja već upravlja tim tunelom, jer dva procesa će se boriti za uređaj i rute. Minimalan init proces unutar kontejnera skuplja djecu i prosljeđuje signale; on ne pretvara sliku u host s unit datotekama.

Ako neko postavljanje zaista treba systemd unutar kontejnera, treba mu namjerno dizajnirana slika, a ne dodatne privilegije koje se dodaju dok systemctl ne prestane da se žali.

Pročitajte sljedeću grešku kad menadžer postoji

Kada pravi menadžer pokrene uslugu, počinju korisne greške. Kvar dozvole za uređaj, greška pri parsiranju konfiguracije, nedostajuća vjerodajnica i nedostupan peer četiri su različita problema koja poruka o PID 1 nikada nije provjerila. Čitajte ih redom kojim ih je unit proizveo, koristeći journalctl -u openvpn-client@office -n 50 na systemd hostu ili pokretanjem klijenta u prvom planu tamo gdje menadžera nema. Pokretanje u prvom planu ujedno je najbrži način da potvrdite da sam profil radi.

Držite ta dva okruženja odvojeno u svojim bilješkama: host koji pokreće tunel i mjesto gdje kucate naredbe.

Povezani članci