As jo systemctl start openvpn-client@office draaie en in berjocht krije dat it systeem net mei systemd opstart is, liket dat op in tsjinstflater. It is hielendal gjin tsjinstflater: de systemctl dy't jo oanrôpen hawwe, kin gjin draaiende behearder fine om mei te praten, dat der is neat oer OpenVPN ûndersocht. sudo makket gjin behearder, en it ynstallearjen fan in unit-bestân docht dat ek net. It kommando en de masine komme út twa ferskillende wrâlden, en de flater is it iennichste plak dêr't dat te sjen wie.

Begjin mei de fraach hokker proses PID 1 hat dêr't it kommando draait, want dat antwurd beslút oft der sowieso units besteane.

De flater neamt de omjouwing, net OpenVPN

systemctl is in klant, gjin behearder. It ferbynt mei de systeembehearder fia in socket, en as der oan de oare kant gjin behearder is, printsjelet it it berjocht dat minsken yn forums plakke. ps -p 1 -o pid=,comm= lit sjen wat eins as PID 1 draait, en it antwurd is faak in shell, in init-omhulsel of it eigen yngongspunt fan de kontener. Yn sa'n situaasje kin in unit-bestân folslein jildich wêze en dochs nea lêzen wurde. It kommando as root werhelje feroaret allinnich de oanmeldgegevens fan de klant.

Lês it hiele berjocht foar de earste rigel. In flater fan de behearder sels, lykas in ûntbrekkende unit of in mislearre betingst, betsjut dat jo ien berikt hawwe; dizze flater betsjut dat jo dat net hawwe.

WSL: systemd ynskeakelje is in konfiguraasjewiziging

WSL krige yn lettere ferzjes stipe foar systemd, mar de funksje wurdt per distribúsje ynskeakele en allinnich dêr't de ynstallearre WSL-ferzje it stipet. wsl --version oan de Windows-kant lit sjen wat jo hawwe, en it /etc/wsl.conf fan de distribúsje befettet [boot] seksje mei systemd=true. Bewurkje dat bestân sûnder de seksjes dy't der al binne fuort te smiten, en start dan de WSL-eksimplaar opnij, sadat de wiziging yn wurking trettet. wsl --shutdown stopet elke draaiende distribúsje, dus bewarje earst jo wurk.

Nei it opnij iepenjen, befêstigje de behearder foardat jo de OpenVPN-unit oanreitsje: ps -p 1 -o comm= soe systemd sjen litte. systemd ynskeakelje jout gjin profyl, gjin oanmeldgegevens en gjin eksimplaarnamme, dus de folgjende flater sil oer ien fan dy dingen gean en net oer PID 1.

Konteners starte har yngongspunt, gjin units

In normale kontener startet wat syn yngongspunt of kommando bepaalt, en it is gjin masine dy't mei systemd opstart is, hokker pakketten jo ek ynstallearje. It tafoegjen fan systemctl oan de ôfbylding jout jo in klant sûnder eat om mei te ferbinen. Foar Community OpenVPN is it stipe patroan meastentiids in proses op de foargrûn, openvpn --config /path/to/client.conf, start troch it yngongspunt en fan bûten ôf begelaat. Dy eigner beheart it opstarten, sinjalen en ôfsluten, en it soe it iennichste wêze moatte dat de tunnel beheart.

Start nea in ynteraktive kopy neist in yngongspunt dat dy tunnel al beheart, want twa prosessen sille fjochtsje oer it apparaat en de rûtes. In minimaal init-proses yn 'e kontener sammelet bern en jout sinjalen troch; it makket de ôfbylding net ta in host mei units.

As in ynset echt systemd nedich hat yn in kontener, hat it in dêrfoar bewust ûntwurpen ôfbylding nedich, net ekstra privileezjes dy't tafoege wurde oant systemctl ophâldt mei klagen.

Lês de folgjende flater as de behearder bestiet

Sadree't in echte behearder de tsjinst startet, begjinne de nuttige flaters. In flater mei apparaatrjochten, in konfiguraasje-parseflater, in ûntbrekkende oanmeldgegevens en in net berikbere peer binne fjouwer ferskillende problemen dy't it PID 1-berjocht nea test hat. Lês se yn 'e folchoarder wêryn't de unit se makke hat, mei journalctl -u openvpn-client@office -n 50 op in systemd-host, of troch de klant op de foargrûn te draaien dêr't gjin behearder is. It draaien op de foargrûn is ek de fluchste manier om te befêstigjen dat it profyl sels wurket.

Hâld de twa omjouwings apart yn jo notysjes: de host dy't de tunnel draait, en it plak dêr't jo kommando's type.

Relatearre artikelen