ഒന്നിലധികം സ്ക്രിപ്റ്റ് എന്ന മുന്നറിയിപ്പ് ഷെഡ്യൂളിംഗിനെക്കുറിച്ചുള്ള പരാതി പോലെ തോന്നുന്നു, അതിനാൽ വ്യക്തമായ പരിഹാരം അത് അപ്രത്യക്ഷമാകുന്നതുവരെ വരികൾ പുനഃക്രമീകരിക്കുക എന്നതാണ്. എന്നാൽ അത് ഷെഡ്യൂളിംഗ് പരാതിയല്ല. പിന്നീടുള്ള --up നിർവചനം ആ ഘട്ടത്തിനായി ഇതിനകം സംഭരിച്ച കമാൻഡ് മാറ്റി സ്ഥാപിക്കുന്നു, പാഴ്സർ അത് പറയുന്നു, അതായത് നിങ്ങളുടെ രണ്ട് സ്ക്രിപ്റ്റുകളിൽ കൃത്യം ഒന്ന് മാത്രമാണ് ഇതുവരെ പ്രവർത്തിച്ചിട്ടുള്ളത്. മറ്റൊന്ന് അതിന് പിന്നിൽ ക്യൂവിൽ നിൽക്കുന്നില്ല; അത് പോയി.

അതുകൊണ്ടാണ് മാരകമല്ലെങ്കിലും ഈ മുന്നറിയിപ്പ് ശ്രദ്ധ അർഹിക്കുന്നത്: അത് പ്രവചിക്കുന്നത് നിശബ്ദമായി സംഭവിക്കുന്നത് നിലച്ച DNS അപ്ഡേറ്റോ റൂട്ട് മാറ്റമോ ആണ്.

മുന്നറിയിപ്പ് ക്രമത്തെക്കുറിച്ചല്ല

OpenVPN up ഘട്ടത്തിനായി ഒരു ഉപയോക്തൃ സ്ക്രിപ്റ്റ് കമാൻഡ് മാത്രം സൂക്ഷിക്കുന്നു. പാഴ്സർ പ്രൊഫൈലിൽ നിന്നോ ഉൾപ്പെടുത്തിയ ഫയലിൽ നിന്നോ കമാൻഡ് ലൈനിൽ നിന്നോ മറ്റൊരു നിർവചനം കണ്ടെത്തുമ്പോൾ, ഇതിനകം സൂക്ഷിച്ചിരുന്നത് മാറ്റി സ്ഥാപിച്ച് മുന്നറിയിപ്പ് നൽകുന്നു. ഒന്നും കൂട്ടിച്ചേർക്കപ്പെടുന്നില്ല, ഒന്നും രണ്ടുതവണ പ്രവർത്തിക്കുന്നില്ല, ക്രമത്തെക്കുറിച്ച് ചോദ്യമില്ല. അവശേഷിക്കുന്നത് പാഴ്സർ അവസാനം കണ്ട കമാൻഡാണ്, അതിനാൽ ഒരു വരി നീക്കിയാൽ വിജയി മാറാം, മറ്റേ സ്ക്രിപ്റ്റ് മരിച്ചവസ്ഥയിൽ തുടരുകയും ചെയ്യും.

അതേ മാതൃക മറ്റ് സ്ക്രിപ്റ്റ് ഘട്ടങ്ങൾക്കും ബാധകമാണ്: ഓരോന്നിനും ഒരു കമാൻഡ്. രണ്ട് ജോലികളും നടക്കേണ്ടതുണ്ടെങ്കിൽ, ലിസ്റ്റ് പോലെ തോന്നിക്കുന്ന രണ്ട് നിർദ്ദേശങ്ങളല്ല, ഒരു പ്രവേശന കേന്ദ്രമാണ് അവയ്ക്ക് വേണ്ടത്.

യഥാർത്ഥ ലോഞ്ചിൽ രണ്ട് നിർവചനങ്ങളും കണ്ടെത്തുക

നിങ്ങൾ എഡിറ്റ് ചെയ്ത പ്രൊഫൈലിൽ നിന്നല്ല, ഡീമൺ യഥാർത്ഥത്തിൽ സ്വീകരിച്ചതിൽ നിന്ന് തുടങ്ങുക. ps -ef ഉം യൂണിറ്റിന്റെ ExecStart ഉം കമാൻഡ് ലൈൻ കാണിക്കുന്നു, അതിൽ കണ്ടെയ്നർ പ്രവേശന കേന്ദ്രത്തിൽ നിന്നോ റാപ്പറിൽ നിന്നോ --up ചേർക്കാം; വിതരണത്തിന്റെ init ഫയലും അതുതന്നെ ചെയ്യാം. systemctl cat openvpn-server@server സേവനം തന്നെ എന്ത് ചേർക്കുന്നു എന്ന് വെളിപ്പെടുത്തുന്നു, കോൺഫിഗറേഷൻ ഡയറക്ടറിയിലെ ആവർത്തന grep ഫയൽ തലത്തിലുള്ള നിർവചനങ്ങൾ കണ്ടെത്തുന്നു. പകർപ്പുകൾ സാധാരണയായി വ്യത്യസ്ത പാളികളിൽ നിന്നാണ് വരുന്നത്, അതുകൊണ്ടുതന്നെ ഒരു ഫയൽ എഡിറ്റ് ചെയ്യുന്നത് ഒന്നും മാറ്റുന്നില്ല.

സ്ക്രിപ്റ്റ് മറ്റൊരു ഡയറക്ടറിയിലേക്ക് പകർത്തുന്നതോ പേരുമാറ്റുന്നതോ ഒരു നിർദ്ദേശവും നീക്കം ചെയ്യുന്നില്ല. പാഴ്സർ ഫയലുകളല്ല, നിർവചനങ്ങളാണ് എണ്ണുന്നത്.

ഒരു hook മാത്രം ജോലിയുടെ ഉടമയാകട്ടെ

സ്ഥിരമായ പരിഹാരം, രണ്ട് പ്രവർത്തനങ്ങളും ബോധപൂർവമായ ക്രമത്തിൽ നടത്തുന്ന ഒരു ഡിസ്പാച്ചറാണ്. set -eu ഉള്ള ചെറിയ shell സ്ക്രിപ്റ്റ് ആവശ്യമായ ഇന്റഗ്രേഷനും തുടർന്ന് പ്രാദേശിക പ്രവർത്തനവും വിളിക്കുകയും, ആർഗ്യുമെന്റ് അതിരുകൾ നിലനിൽക്കാൻ "$@" കൈമാറുകയും ചെയ്യുന്നതിനാൽ പെരുമാറ്റം ഒരു പരിശോധിക്കാവുന്ന സ്ഥലത്ത് നിൽക്കുന്നു. ആർഗ്യുമെന്റുകൾ കൈമാറുന്നത് അവയെ സംരക്ഷിക്കുക മാത്രം ചെയ്യുന്നു; രണ്ട് സഹായികളും ഒരേ ഇന്റർഫേസ് പ്രതീക്ഷിക്കുന്നു എന്ന് അത് തെളിയിക്കുന്നില്ല, അതിനാൽ ഓരോന്നിന്റെയും കരാർ വായിക്കുക. പരാജയം എന്ത് ചെയ്യണം, ഭാഗിക മാറ്റങ്ങൾ പിൻവലിക്കണോ എന്ന് തീരുമാനിക്കുക.

ലോഞ്ചർ പിന്തുണയുള്ള എക്സ്റ്റൻഷൻ hook വാഗ്ദാനം ചെയ്യുന്നുവെങ്കിൽ, കൈകൊണ്ട് നിർമ്മിച്ച ശൃംഖലയെക്കാൾ അതിനെ മുൻഗണന നൽകുക. കണ്ടെയ്നർ ഇമേജിലോ വെണ്ടർ പാക്കേജിലോ അധിക ജോലിക്കായി രേഖപ്പെടുത്തിയ സ്ഥലം പലപ്പോഴും ഉണ്ട്, അത് ഉപയോഗിക്കുന്നത് അപ്ഗ്രേഡ് നിങ്ങളുടെ ഡിസ്പാച്ചറിന് മുകളിൽ എഴുതുന്നത് തടയുന്നു.

വൃത്തിയാക്കൽ ബന്ധപ്പെട്ട down ഘട്ടത്തിന്റേതാണ്. DNS വീണ്ടും എഴുതുന്നതോ റൂട്ടുകൾ ചേർക്കുന്നതോ ആയ up പ്രവർത്തനത്തിന് രേഖപ്പെടുത്തിയ പിൻവലിക്കൽ ആവശ്യമാണ്, കൂടാതെ ആരംഭം മാത്രം കൈകാര്യം ചെയ്യുന്ന ഡിസ്പാച്ചർ പകുതി ഡിസൈനാണ്.

നിശബ്ദതയല്ല, ഇന്റഗ്രേഷൻ ഉറപ്പാക്കുക

ഡ്യൂപ്ലിക്കേറ്റ് മുന്നറിയിപ്പ് നീക്കുന്നത് എളുപ്പമുള്ള ഭാഗമാണ്; ഇന്റഗ്രേഷൻ ഇപ്പോഴും പ്രവർത്തിക്കണം. കണക്ട് ചെയ്ത ശേഷം resolvectl status ഉപയോഗിച്ചോ /etc/resolv.conf വായിച്ചോ റിസോൾവർ അവസ്ഥ പരിശോധിക്കുക, ip route ഉപയോഗിച്ച് റൂട്ടുകൾ ഉറപ്പാക്കുക. തുടർന്ന് വിച്ഛേദിച്ച് വീണ്ടും കണക്ട് ചെയ്യുക, കാരണം തിടുക്കത്തിൽ ബന്ധിപ്പിച്ച hook മുൻ സെഷനിൽ നിന്ന് എന്തെങ്കിലും അവശേഷിപ്പിക്കാറുണ്ട്. journalctl -u openvpn-server@server -b നിങ്ങളുടെ ഡിസ്പാച്ചർ പ്രവർത്തിച്ചോ, എന്ത് അച്ചടിച്ചു എന്ന് കാണിക്കുന്നു.

hook-ന്റെ പ്രത്യേകാവകാശങ്ങൾ ഉണ്ടായിരിക്കേണ്ടിടത്ത് തന്നെ നിർത്തുക. script-security വർദ്ധിപ്പിക്കുന്നതോ ഡീമണ്ണിനെ കൂടുതൽ അവകാശങ്ങളോടെ പ്രവർത്തിപ്പിക്കുന്നതോ മാറ്റിസ്ഥാപിച്ച hook-നുള്ള പരിഹാരമല്ല; അത് ഭാവിയിലെ ഓരോ സ്ക്രിപ്റ്റിനും, ആക്രമണകാരി പേരിടുന്ന സ്ക്രിപ്റ്റിനും എന്ത് ചെയ്യാമെന്ന് വിപുലീകരിക്കുന്നു.

പരിഹാരം യഥാർത്ഥമാണെന്നതിന്റെ അടയാളം ലോഗിലെ നിശബ്ദതയല്ല. DNS ഉത്തരം, റൂട്ട് എൻട്രി, വൃത്തിയാക്കൽ എന്നിവ രണ്ട് പുനഃബന്ധനങ്ങൾക്ക് ശേഷം ശരിയായി പ്രവർത്തിക്കുന്നതാണ്.

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