systemctl каже да systemd није PID 1: шта онда?
Порука о PID 1 тиче се окружења, а не OpenVPN-а. Проверите шта ради као PID 1, омогућите systemd где је подржан и затим прочитајте праву грешку.
Када се systemctl start openvpn-client@office покрене и појави порука да систем није подигнут са systemd-ом, то изгледа као квар услуге. То уопште није квар услуге: systemctl, који сте позвали, не може да нађе покренути менаџер за разговор, па ништа о OpenVPN-у није ни проверено. sudo не ствара менаџер, а ни инсталирање unit датотеке га не ствара. Наредба и машина долазе из два различита света, а грешка је једино место где се то показало.
Почните питањем који процес држи PID 1 тамо где се наредба извршава, јер тај одговор одлучује да ли unit датотеке уопште постоје.
Грешка именује окружење, не OpenVPN
systemctl је клијент, а не менаџер. Повезује се са системским менаџером преко socket-а, и када на другој страни нема менаџера, исписује поруку коју људи лепе на форуме. ps -p 1 -o pid=,comm= показује шта заправо ради као PID 1, а одговор је често shell, init омотач или сопствена улазна тачка контејнера. У таквој ситуацији unit датотека може бити потпуно исправна и ипак никада не буде прочитана. Понављање наредбе као root мења само акредитиве клијента.
Прочитајте целу поруку пре првог реда. Грешка самог менаџера, попут unit датотеке која недостаје или неиспуњеног услова, значи да сте до њега стигли; ова грешка значи да нисте.
WSL: укључивање systemd-а је промена конфигурације
WSL је добио подршку за systemd у каснијим издањима, али се функција укључује по дистрибуцији и само тамо где је подржава инсталирана верзија WSL-а. wsl --version на страни Windows-а показује шта имате, а /etc/wsl.conf дистрибуције садржи [boot] одељак са systemd=true. Уредите ту датотеку без уклањања одељака који већ постоје, затим поново покрените инстанцу WSL-а да промена ступи на снагу. wsl --shutdown зауставља сваку покренуту дистрибуцију, па прво сачувајте рад.
Након поновног отварања потврдите менаџер пре него што дирнете unit датотеку OpenVPN-а: ps -p 1 -o comm= би требало да прикаже systemd. Укључивање systemd-а не даје профил, акредитиве ни назив инстанце, па ће се следећа грешка тицати једног од тога, а не PID 1.
Контејнери покрећу своју улазну тачку, не unit датотеке
Нормалан контејнер покреће оно што одреди његова улазна тачка или наредба и није машина подигнута са systemd-ом, без обзира које пакете инсталирате. Додавање systemctl у слику даје вам клијент који нема са чим да се повеже. За Community OpenVPN подржани образац је обично процес у првом плану, openvpn --config /path/to/client.conf, који покреће улазна тачка и који се надгледа споља. Тај власник брине о покретању, сигналима и заустављању и требало би да буде једино што управља тунелом.
Никада не покрећите интерактивну копију поред улазне тачке која већ управља тим тунелом, јер два процеса ће се борити за уређај и руте. Минималан init процес унутар контејнера скупља децу и прослеђује сигнале; он не претвара слику у хост са unit датотекама.
Ако неко распоређивање заиста треба systemd унутар контејнера, потребна му је намерно дизајнирана слика, а не додатне привилегије које се додају док systemctl не престане да се жали.
Прочитајте следећу грешку кад менаџер постоји
Када прави менаџер покрене услугу, почињу корисне грешке. Квар дозволе за уређај, грешка при парсирању конфигурације, акредитиви који недостају и недоступан peer четири су различита проблема која порука о PID 1 никада није проверила. Читајте их редом којим их је unit произвео, користећи journalctl -u openvpn-client@office -n 50 на systemd хосту или покретањем клијента у првом плану тамо где менаџера нема. Покретање у првом плану је уједно најбржи начин да потврдите да сам профил ради.
Држите та два окружења одвојено у својим белешкама: хост који покреће тунел и место где куцате наредбе.