کله چې 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 هره روانه وېش ودروي، نو لومړی خپل کار خوندي کړئ.

بیا له خلاصولو وروسته، د OpenVPN unit ته له لاس وهلو مخکې مدیر تایید کړئ: ps -p 1 -o comm= باید وښيي systemd۔ systemd فعالول هېڅ پروفایل، اعتبارنامه یا نسخه نوم نه درکوي، نو بله تېروتنه به د PID 1 نه، بلکې د دغو یوې په اړه وي.

کانټینرونه خپل ننوتځای چلوي، نه unitونه

عادي کانټینر هغه څه پیلوي چې د هغه ننوتځای یا امر ټاکي، او هر څومره پاکټونه نصب کړئ، دا د systemd سره بوټ شوی ماشین نه دی. په عکس کې systemctl ورزیاتول تاسو ته داسې کلاینټ درکوي چې د نښلولو لپاره څه نه لري. د Community OpenVPN لپاره ملاتړ شوی بڼه معمولاً په مخکینۍ کرښه کې روانه پروسه ده، openvpn --config /path/to/client.conf، چې ننوتځای یې پیلوي او له دېرې څخه څارل کېږي. هغه مالک پیل، سیګنالونه او بندول سمبالوي، او د تونل اداره کوونکی باید یوازې همدا وي.

هغه ننوتځای چې مخکې له مخکې هغه تونل اداره کوي، د هغه ترڅنګ هېڅکله متقابل کاپي مه چلوئ، ځکه دوه پروسې به د وسیلې او لارو لپاره وجنګېږي۔ د کانټینر دننه لږترلږه init پروسه ماشومان راټولوي او سیګنالونه لیږدوي؛ دا عکس د unitونو لرونکي هوسټ ته نه بدلوي.

که څه ځای پرځای کول واقعاً د کانټینر دننه systemd ته اړتیا لري، هغه ته په قصد جوړ شوی عکس ته اړتیا ده، systemctl تر هغه چې شکایت بند نه کړي زیاتېدونکي اضافي واکونه نه.

کله چې مدیر شته وي بلې تېروتنې ولولئ

کله چې ریښتینی مدیر خدمت پیل کړي، ګټورې تېروتنې پیلېږي. د وسیلې اجازې ناکامي، د کنفیګ تحلیل تېروتنه، ورکه اعتبارنامه او نه رسېدونکی ملګری — دا څلور بېلابېلې ستونزې دي چې د PID 1 پیغام هېڅکله نه دي ګړلې. هغوی په هغه ترتیب ولولئ چې unit تولید کړي، په کارولو journalctl -u openvpn-client@office -n 50 د systemd هوسټ کې، یا چېرې چې مدیر نه وي هلته کلاینټ په مخکینۍ کرښه کې چلو. په مخکینۍ کرښه کې چلول د دې تایید لپاره ترټولو ګړندی لار هم ده چې پروفایل پخپله کار کوي.

په خپلو یادښتونو کې دواړه چاپېریالونه بېل وساتئ: هغه هوسټ چې تونل چلوي، او هغه ځای چې تاسو امرونه ټایپ کوئ.

اړوندې مقالې