നിങ്ങൾ 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 ഹോസ്റ്റിൽ, അല്ലെങ്കിൽ മാനേജർ ഇല്ലാത്തിടത്ത് ക്ലയന്റ് മുൻഭാഗത്ത് പ്രവർത്തിപ്പിച്ച്. മുൻഭാഗത്ത് പ്രവർത്തിപ്പിക്കുന്നത് പ്രൊഫൈൽ തന്നെ പ്രവർത്തിക്കുന്നുവെന്ന് സ്ഥിരീകരിക്കാനുള്ള വേഗതയേറിയ മാർഗവുമാണ്.

നിങ്ങളുടെ കുറിപ്പുകളിൽ രണ്ട് പരിസ്ഥിതികളും വേർതിരിച്ച് സൂക്ഷിക്കുക: ടണൽ പ്രവർത്തിപ്പിക്കുന്ന ഹോസ്റ്റും, നിങ്ങൾ കമാൻഡുകൾ ടൈപ്പ് ചെയ്യുന്ന സ്ഥലവും.

അനുബന്ധ ലേഖനങ്ങൾ