Pokretanje systemctl start openvpn-client@office i dobivanje poruke da sustav nije podignut sa systemd-om izgleda kao kvar usluge. To nije nikakav kvar usluge: systemctl koji ste pozvali ne može pronaći pokrenuti upravitelj s kojim bi razgovarao, pa ništa o OpenVPN-u nije ni provjereno. sudo ne stvara upravitelj, a ni instaliranje unit datoteke ga ne stvara. Naredba i stroj 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 upravitelj. Povezuje se sa sustavnim upraviteljem preko socketa, a kada na drugoj strani nema upravitelja, ispisuje poruku koju ljudi lijepe na forume. ps -p 1 -o pid=,comm= pokazuje što 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 retka. Greška samog upravitelja, poput nedostajuće unit datoteke ili neuspjelog uvjeta, 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 što imate, a /etc/wsl.conf datoteka distribucije nosi [boot] odjeljak sa systemd=true. Uredite tu datoteku bez uklanjanja odjeljaka koji već postoje, zatim ponovno pokrenite instancu WSL-a da promjena stupi na snagu. wsl --shutdown zaustavlja svaku pokrenutu distribuciju, pa prvo spremite rad.

Nakon ponovnog otvaranja potvrdite upravitelj prije nego što dirnete unit datoteku OpenVPN-a: ps -p 1 -o comm= bi trebalo prikazati 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 stroj podignut 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 doista treba systemd unutar kontejnera, treba mu namjerno dizajnirana slika, a ne dodatne privilegije koje se dodaju dok systemctl ne prestane prigovarati.

Pročitajte sljedeću grešku kad upravitelj postoji

Kada pravi upravitelj 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 upravitelja 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 tipkate naredbe.

Povezani članci