VPN கருவியின் அமைப்புகள்: துவக்க நேரச் சூழலா அல்லது கொக்கியில் ஏற்றுமதியா?
கொக்கி தனது சொந்த குழந்தை செயல்முறைகளைத் தொடங்குகிறது, நீங்கள் ஏற்கனவே திறந்த shell அல்ல. துவக்க நேரச் சூழல் தனிப்பட்ட முடிவுப் புள்ளியை அது தேவைப்படும் ஒரே கட்டளையில் மட்டும் வைத்திருக்கிறது.
API முடிவுப் புள்ளியை ஏற்றுமதி செய்யும் VPN கொக்கி, அது தொடங்கும் செயல்முறைகளின் சூழலை மாற்றுகிறது, சுரங்கப்பாதை எழுந்தபோது ஏற்கனவே திறந்திருந்த முனையத்தின் சூழலை அல்ல. இந்த ஒரே வேறுபாடுதான் «கருவி இன்னும் பொது முடிவுப் புள்ளியை அழைக்கிறது» என்ற பெரும்பாலான அறிக்கைகளை விளக்குகிறது. அமைப்பை வைக்க இரண்டு செயல்படக்கூடிய இடங்கள் உள்ளன, தேர்வு அதை யார் பயன்படுத்துகிறார்கள், எத்தனை அடிக்கடி மாறுகிறது என்பதைப் பொறுத்தது. மற்றொரு துவக்க ஸ்கிரிப்டைச் சேர்ப்பதற்கு முன் இரண்டையும் ஒப்பிடுங்கள்.
அமைப்பு வாழக்கூடிய இரண்டு இடங்கள்
முதல் விருப்பம் கட்டளையின் மீதே ஒரு முன்னொட்டு: மதிப்பு அந்த ஒரு அழைப்புக்கு மட்டுமே இருக்கும், அதனுடன் மறைந்துவிடும். இரண்டாவது விருப்பம் இணைப்புக் கொக்கிக்குள் ஏற்றுமதி, அது அந்தப் புள்ளிக்குப் பிறகு கொக்கி தொடங்கும் ஒவ்வொரு செயல்முறைக்கும் சென்றடைகிறது. அவை அணுகலிலும் ஆயுளிலும் வேறுபடுகின்றன, தொடரியலில் அல்ல, அந்த வேறுபாடே பெரும்பாலான தோல்விகளைத் தீர்மானிக்கிறது.
| Property | Prefix on the command | Export from the hook |
|---|---|---|
| Who receives it | That invocation only | Children the hook starts |
| Lifetime | Until the process exits | Until the hook's own session ends |
| Leakage | Scoped to one command | Applies to later commands in that session |
| Repeat cost | Every invocation | Once per connection |
| Works for an open editor | No, unless the editor is started with it | No |
அட்டவணை கொக்கியை மலிவாகக் காட்டி உண்மையான பில்லை மறைக்கிறது: பணிக்குத் தொடர்பில்லாத கட்டளைகளுக்கும் அது தனிப்பட்ட முடிவுப் புள்ளியைத் தேர்ந்தெடுக்கிறது. ஒவ்வொரு வரிசையையும் விருப்பமாக அல்ல, கட்டுப்பாடாகப் படியுங்கள். முடிவுப் புள்ளி பணிக்குப் பணி மாறினால், ஒரு விசை அழுத்தம் செலவானாலும் முன்னொட்டே துல்லியத்தில் வெல்கிறது.
ஏற்கனவே திறந்த shell-ஐ கொக்கி எட்ட முடியாதது ஏன்
சூழல் மாறிகள் செயல்முறை உருவாக்கப்படும் போது செயல்முறைக்கு வழங்கப்படுகின்றன. இணைப்புக்கு முன் தொடங்கிய shell தான் பெற்ற நகலை வைத்திருக்கும், கொக்கிக்குள் இயக்கப்படும் ஏற்றுமதி இயந்திரத்தின் ஒவ்வொரு செயல்முறைக்கும் ஒளிபரப்பு அல்ல. கொக்கியின் சொந்தக் குழந்தைகள் மட்டுமே அதை மரபுரிமையாகப் பெறுகின்றன. shell-இன் சொந்தக் குழந்தைகள் அவை தொடங்கும் தருணத்தில் shell வைத்திருப்பதை எடுத்துக்கொள்கின்றன, அதனால்தான் ஒரே கட்டளை ஒரு முனையத்தில் வேலை செய்து மற்றொன்றில் தோல்வியடையலாம்.
இதே விஷயம் வரைகலைத் தொகுப்பிக்கும் பொருந்தும். அதன் நீட்டிப்பு ஹோஸ்ட், உள்ளமைந்த முனையம் மற்றும் பின்னணி மொழி சேவையகம் துவக்கத்தில் பிரிந்து தங்கள் சொந்த நகல்களை வைத்திருக்கின்றன. கோப்புறையை மீண்டும் திறப்பது அந்தக் குழந்தைகளை மீண்டும் தொடங்க வேண்டும் என்பதில்லை, எனவே நீங்கள் சேர்த்த அமைப்பு இன்னும் எப்போதும் வந்து சேராது.
மலிவான சோதனை, வேலை செய்யும் shell-இலிருந்து அல்ல, தோல்வியடையும் இடத்திலிருந்து மாறியை அச்சிடுவது. தோல்வியடையும் செயல்முறை சுரங்கப்பாதைக்கு முன் தொடங்கியிருந்தால், ஏற்றுமதிக்கு எந்த வாய்ப்பும் இல்லை.
ஒவ்வொரு கட்டளைக்கான வடிவம், எழுதப்பட்டது
முன்னொட்டு தேர்வை அதைப் பயன்படுத்தும் கட்டளைக்குள்ளேயே தெரியும்படி வைத்திருக்கும், முடிவுப் புள்ளி பணிகளுக்கு இடையே மாறும்போது இது உதவுகிறது:
env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool
கட்டளை ஒரு எடுத்துக்காட்டு மட்டுமே: my-work-tool ஒரு இடம்காட்டி, INTERNAL_API VPN தரநிலை அல்ல, எனவே நீங்கள் உண்மையில் இயக்கும் நிரலின் ஆவணப்படுத்தப்பட்ட அமைப்பையும் உங்கள் அனுமதிக்கப்பட்ட ஹோஸ்டையும் இடுங்கள். ஒரே வரியில் டோக்கன் அல்லது கடவுச்சொல்லை வைக்க வேண்டாம், ஏனெனில் அது shell வரலாற்றுக்குச் செல்கிறது.
பல கட்டளைகள் ஒரே பணிக்கு உரியவை என்றால், சுருக்கமான மதிப்பாய்வு செய்யப்பட்ட மடக்கு ஸ்கிரிப்ட் மாறிகளை அமைத்து பின்னர் அவற்றைத் தொடங்குகிறது. இது ஒரே வரையறையை வைத்திருக்கிறது, மதிப்பை முனையத்தின் ஒவ்வொரு எதிர்கால கட்டளைக்கும் உலகளாவியதாக்காமல்.
மீண்டும் ஏற்றுங்கள், மீண்டும் தொடங்குங்கள் அல்லது அப்படியே விடுங்கள்
ஏற்கனவே இயங்கும் கருவிக்கு, இருந்தால் அதன் சொந்த மறுஏற்றம் அல்லது பணியிடச் சுயவிவரத்திற்கு முன்னுரிமை கொடுங்கள். இல்லையெனில் வேலையைச் சேமித்து அமைப்பைப் படிக்கும் கூறை மீண்டும் தொடங்குங்கள், அது பெரும்பாலும் மொழி சேவையகம், தொகுப்பி சாளரம் அல்ல. சாளரத்தை மீண்டும் தொடங்கி குழந்தை செயல்முறைகள் அதைப் பின்தொடர்ந்தன என்று கருதுவதே மறுஏற்றம் வேலை செய்யாதது போல் தோன்றுவதற்கான காரணம்.
இணைப்புத் துண்டிப்பு தனி முடிவு. இடைநிறுத்தம், மூடுதல் அல்லது மீண்டும் இணைதல் பயன்பாட்டுக்கு உரியது, முடிவுப் புள்ளி மாறி அதைக் கட்டுப்படுத்தாது. மாறியை முகவரியைத் தேர்ந்தெடுக்கும் உள்ளமைவாகக் கருதுங்கள், பின்னர் எந்த வலையமைப்புப் போக்குவரத்தைப் பயன்படுத்தலாம் என்பதற்கான விதியாக அல்ல, இரண்டு விஷயங்களும் தனித்தனியாகவே இருக்கும்.