OpenVPN active (exited) என்கிறதா? நீங்கள் தொடங்கிய இன்ஸ்டன்ஸைக் கண்டறியுங்கள்
active (exited) ஒரு டன்னல் அல்ல, RemainAfterExit தாங்கும் /bin/true இன் ஒரு-முறை பணி. இன்ஸ்டன்ஸைக் கண்டறிந்து, அது சுட்டும் கோப்பைப் படித்து, பின்னர் அதன் ஜர்னலைப் படியுங்கள்.
நீங்கள் டன்னலைச் சரிபார்த்து, systemctl status openvpn இயக்கி, Main PID இல்லாமல் காலியான செயல்முறை பட்டியலுடன் active (exited) பெறுகிறீர்கள். சேவை தொடங்கி இறந்துவிட்டது என்பதே இயல்பான வாசிப்பு, எனவே unit-ஐத் திறந்து /bin/true-ஐக் கண்டுபிடித்து தொகுப்பு உடைந்துவிட்டது என்று முடிவெடுக்கிறீர்கள். Debian தொகுப்பில் அந்த நிலை வடிவமைப்பின்படி வேலை செய்யும் wrapper, டன்னல் அது தொடங்கும் instance unit-களில் ஒன்றில் வாழ்கிறது. மொத்த unit எந்த இன்ஸ்டன்ஸ் அதைக் கட்டியது என்று ஒருபோதும் சொல்லாது.
இந்த unit-இல் active (exited) உண்மையில் என்ன அர்த்தம்
தொகுக்கப்பட்ட unit ஒரு-முறை பணி: அதன் ExecStart /bin/true, முடிந்த unit-ஐ active (exited) எனத் தெரிவிக்கப்பட்டு வைத்திருப்பது RemainAfterExit=yes. அந்த வழிமுறையை நீக்கினால் அதே வெற்றிகரமான /bin/true பணி inactive (dead)-இல் முடிகிறது, அதுவே மக்கள் எதிர்பார்த்து எதிர்திசையில் தவறாகப் படிக்கும் நிலை. கட்டளை வெறும் இடம்பிடிப்பான், unit மற்ற unit-கள் செய்யும் வேலையைப் பற்றி அறிக்கை அளிக்கிறது. இந்த ஏற்பாட்டில் எதுவும் உடைந்திருக்கவில்லை, /bin/true-ஐ மாற்றுவது டன்னலை அல்ல, தொகுப்பு ஒப்பந்தத்தை மாற்றுகிறது.
wrapper பிரதிநிதித்துவம் செய்கிறது. தொகுப்பு உள்ளமைவு அல்லது அதன் systemd உருவாக்கி வழங்கும் instance unit-களைத் தொடங்குகிறது, அதனால்தான் காலியான செயல்முறை பட்டியல் டன்னலைப் பற்றி எதையும் நிரூபிக்காது. எந்த இன்ஸ்டன்ஸும் தேர்ந்தெடுக்கப்படாவிட்டாலும் wrapper வெற்றிபெறும், எதையும் தொடங்காது. நிலை wrapper இயங்கியதா என்பதற்குப் பதிலளிக்கிறது, டன்னல் உள்ளதா என்பதற்கல்ல.
அடைப்புக்குள் உள்ள சொல்லை விட status வெளியீட்டின் மூன்று வரிகளைப் படியுங்கள். Loaded systemd படித்த unit கோப்பைப் பெயரிடுகிறது, Active கடைசி வெற்றிகரமான ஓட்டத்தின் நேரமுத்திரையைக் கொண்டுள்ளது, Main PID இல்லாதது முடிந்த ஒரு-முறை பணிக்குப் பொருந்துகிறது. அந்த மூன்று வரிகளே இந்த wrapper-ஐத் தொடங்கிய ஒரு வினாடிக்குப் பிறகு விழுந்த சேவையிலிருந்து வேறுபடுத்தும் வழியும் ஆகும்.
status-ஐ மீண்டும் படிக்கும் முன் unit-களைப் பட்டியலிடுங்கள்
என்ன இயங்குகிறது எனக் கேட்பதற்கு முன் systemd-ஐ என்ன உள்ளது எனக் கேளுங்கள். எந்த இன்ஸ்டன்ஸும் உருவாக்கப்படாமலேயே டெம்ப்ளேட் நிறுவப்படலாம், உருவாக்கப்பட்ட unit மட்டுமே டன்னலைக் கொண்டுள்ளது. ஏற்றப்பட்ட தொகுப்பிலிருந்து தொடங்குங்கள்:
systemctl list-units 'openvpn*'
அந்தப் பட்டியல் systemd இந்தக் கணத்தில் ஏற்றியது, டன்னல் பட்டியலுக்கு மிக அருகிலானது அதுவே. நிறுவப்பட்ட unit கோப்புகள் வேறு கேள்விக்குப் பதிலளிக்கின்றன, எதுவும் உருவாக்கப்படாதபோதும் அந்தப் பட்டியல் டெம்ப்ளேட்டைக் காட்டுகிறது:
systemctl list-unit-files 'openvpn*'
இரண்டு பட்டியல்களையும் சேர்த்துப் படியுங்கள், ஏனெனில் இரண்டாவதில் டெம்ப்ளேட், முதல் பட்டியலில் இன்ஸ்டன்ஸ் இரண்டு வேறு பதில்கள். உள்ள டெம்ப்ளேட்டும் இயங்கும் இன்ஸ்டன்ஸும் ஒரே உண்மை அல்ல, இரண்டாவது மட்டுமே டன்னல் எனப் பொருள்படும். தொகுப்பு அமைப்புகள் விநியோகங்கள் மற்றும் OpenVPN பதிப்புகளுக்கு இடையேயும் வேறுபடும். பழைய openvpn@ டெம்ப்ளேட், தனித்த client மற்றும் server ஜோடி, விநியோக wrapper ஆகியவை அனைத்தும் அவற்றின் தொகுப்பில் செல்லுபடியாகும்.
நீங்கள் கண்ட பயிற்சியை விட உங்கள் இயந்திரத்திற்கு ஏற்ப மாற்றுங்கள். மற்றவரின் வெளியீட்டில் இன்ஸ்டன்ஸ் பெயர் office ஆக இருக்கலாம், உங்களுடையது home அல்லது work ஆக இருக்கலாம். கடத்தப்படுவது முறை, சரம் அல்ல.
இன்ஸ்டன்ஸ் பெயரை அது படிக்கும் கோப்பு வரை பின்தொடருங்கள்
upstream client டெம்ப்ளேட்டில் unit-இன் பணி அடைவு /etc/openvpn/client, அதன் கட்டளை அங்கிருந்து %i.conf எடுக்கிறது, எனவே openvpn-client@office /etc/openvpn/client/office.conf-ஐப் படிக்கிறது. எடுத்துக்காட்டை நம்புவதற்குப் பதிலாக நிறுவப்பட்ட unit-இல் அந்த மேப்பிங்கை உறுதிசெய்யுங்கள், ஏனெனில் உங்கள் டெம்ப்ளேட் பழையதாகவோ விநியோகத்தின் மறுஎழுத்தாகவோ இருக்கலாம்:
systemctl cat [email protected]
அந்த வெளியீட்டின் கீழே தோன்றும் drop-in-களைப் படியுங்கள், ஏனெனில் .d/ கீழ் உள்ள கோப்பு ExecStart, பணி அடைவு அல்லது உள்ளமைவு பாதையை மாற்றலாம். நீங்கள் office.ovpn ஆகப் பதிவிறக்கிய சுயவிவரம் இன்ஸ்டன்ஸ் திறக்கும் கோப்பு அல்ல. இந்த இடைவெளியே நீங்கள் ஒருபோதும் திருத்தாத பாதையைப் பிழை பெயரிடுவதற்கான வழக்கமான காரணம்.
சுயவிவரத்திற்குள் உள்ள ஒப்பீட்டுப் பாதைகள் அடுத்த பொறி. ca, cert, key குறிப்புகள் ஒப்பீட்டு நிலையில் இருக்கும்போது முதன்மைக் கோப்பை நகர்த்துவது காணாமல்-கோப்பு பிழையை மற்றொரு காணாமல்-கோப்பு பிழையாக மாற்றுகிறது. இரண்டாவது உள்ளது என்று நீங்கள் உறுதியாக நம்பிய கோப்பைச் சுட்டுகிறது, எனவே கோப்பு பெயரை விட சுயவிவர அடைவே முக்கியம்.
அதைத் தொடங்கி, பின்னர் அந்த இன்ஸ்டன்ஸின் ஜர்னலைப் படியுங்கள்
நீங்கள் இப்போது ஆய்வு செய்த இன்ஸ்டன்ஸைத் தொடங்குங்கள், ஏனெனில் மொத்த unit-இன் பதிவில் டன்னலின் பிழைகள் இருக்காது. பின்னர் இந்த துவக்கத்தின் ஜர்னலைப் படித்து அதே வரிசையில் உள்ளமைவு பிழை, கோப்பு-அணுகல் பிழை, இணைப்பு பிழை ஆகியவற்றைத் தேடுங்கள், ஏனெனில் ஒவ்வொன்றும் தொடக்கத்தின் வேறு கட்டத்தில் தோல்வியடைகிறது.
sudo systemctl start [email protected]
journalctl -u [email protected] -b
தொடங்குவதும் இயக்குவதும் தனித்தனி முடிவுகள்: start unit-ஐ இப்போது இயக்குகிறது, enable அடுத்த துவக்கத்தை ஏற்பாடு செய்கிறது, enable --now இரண்டையும் ஒரு படியில் செய்கிறது. daemon-reload unit வரையறைகளை மீண்டும் படிக்கிறது, இயங்கும் செயல்முறையை மறுதொடக்கம் செய்யாது, திருத்தப்பட்ட சுயவிவரத்தைப் பயன்படுத்தாது. சுயவிவரத்தை மாற்றிய பிறகு இன்ஸ்டன்ஸை மறுதொடக்கம் செய்யுங்கள், ஏனெனில் கோப்பை மீண்டும் படிப்பது அதுவே.
அதே டன்னலில் இரண்டாவது மேலாளரை வைக்காதீர்கள்
NetworkManager மற்றும் OpenVPN 3 அமர்வு மேலாளர்கள் தங்கள் சொந்த இணைப்பு நிலையைக் கொண்டுள்ளன, அவற்றில் ஒன்றின் அருகில் systemd இன்ஸ்டன்ஸ் இருந்தால் அதே டன்னலில் இரண்டு உரிமையாளர்கள் ஆவார்கள். அறிகுறி என்னவென்றால் டன்னல் மேலெழுந்து சில வினாடிகளில் மாற்றப்படுவது, அல்லது நிறுத்தப்பட்டே இருக்க மறுப்பது. டெஸ்க்டாப்பிற்காக உங்கள் விநியோகம் ஆவணப்படுத்தும் மேலாளரைத் தேர்ந்தெடுத்து, சேவையகத்தில் systemd-ஐ வேண்டுமென்றே பயன்படுத்துங்கள்.
இன்ஸ்டன்ஸைத் தொடங்கும் முன் ஏற்கனவே உரிமையாளர் உள்ளாரா எனச் சரிபாருங்கள். டெஸ்க்டாப் ஆப்லெட் இணைப்பைக் காட்டும்போது, நீங்கள் தொடங்கும் இன்ஸ்டன்ஸ் அதை முழுமையாக்குவதற்குப் பதிலாக அதனுடன் போட்டியிடுகிறது. இரண்டையும் இயக்கி வரிசை நிலைத்திருக்கும் என நம்புவதற்குப் பதிலாக நீங்கள் பயன்படுத்தாத மேலாளரை முடக்குங்கள். அந்த மோதலே, டன்னல் நிறுவப்பட்ட பிறகு நீங்கள் ஒருபோதும் தொடங்காத செயல்முறையால் அது உடைக்கப்படும் ஜர்னல்களையும் விளக்குகிறது.
மூல கேள்விக்கு இன்ஸ்டன்ஸின் பெயர், அது படித்த கோப்பு, தோல்வியடைந்த ஜர்னல் வரி ஆகியவற்றுடன் பதிலளியுங்கள். systemd ஒருங்கிணைப்பு பற்றிய OpenVPN குறிப்புகள் டெம்ப்ளேட் அமைப்பையும் இன்ஸ்டன்ஸ் பெயர் தீர்க்கப்படும் கோப்பு மேப்பிங்கையும் விவரிக்கின்றன.