தேவையற்ற தாமதம் இல்லாமல் பாஷில் ஒரு கட்டளையை காலாவதி செய்வது எப்படி

Tevaiyarra Tamatam Illamal Pasil Oru Kattalaiyai Kalavati Ceyvatu Eppati



பாஷில், சில சமயங்களில் நீங்கள் ஒரு கட்டளையை இயக்க வேண்டியிருக்கலாம், அது முடிவடைய நீண்ட நேரம் எடுக்கும், மேலும் அது காலவரையின்றி முடிவடையும் வரை நீங்கள் காத்திருக்க விரும்பவில்லை. இந்தச் சிக்கலுக்கான ஒரு தீர்வு, ஒரு கட்டளையை இயக்கக்கூடிய நேரத்தைக் கட்டுப்படுத்தும் காலக்கெடு கட்டளையைப் பயன்படுத்துவதாகும். இந்த கட்டுரை, தேவையற்ற தாமதமின்றி பாஷில் ஒரு கட்டளையை எவ்வாறு காலாவதி செய்வது என்று விவாதிக்கும்.

பாஷில் ஒரு கட்டளையை முடிக்கவும்

பாஷில் ஒரு கட்டளையை காலாவதி செய்ய, நாம் பயன்படுத்தலாம் 'நேரம் முடிந்தது' கட்டளை. எல்லா கணினிகளிலும் முன்னிருப்பாக “டைம்அவுட்” கட்டளை கிடைக்காது, ஆனால் இது பெரும்பாலான லினக்ஸ் விநியோகங்களில் தொகுப்பு மேலாளரைப் பயன்படுத்தி நிறுவப்படலாம், இங்கே “டைம்அவுட்” கட்டளையின் தொடரியல் உள்ளது:







நேரம் முடிந்தது [ விருப்பம் ] கால கட்டளை [ ஏஆர்ஜி ]


இங்கே 'OPTION' என்பது ஒரு விருப்ப வாதமாகும், இது காலக்கெடு கட்டளையின் நடத்தையைக் குறிப்பிடுகிறது, 'DURATION' என்பது கட்டளையை இயக்குவதற்கான நேர வரம்பு, மேலும் 'COMMAND [ARG]' என்பது நாம் இயக்க விரும்பும் கட்டளை மற்றும் அதன் வாதங்கள்.



எடுத்துக்காட்டாக, 'ஸ்லீப்' கட்டளையை ஐந்து வினாடிகளுக்கு இயக்க வேண்டும் என்று வைத்துக்கொள்வோம், ஆனால் மூன்று வினாடிகளுக்குப் பிறகு கட்டளையை காலாவதி செய்ய விரும்புகிறோம், இங்கே ஷெல் ஸ்கிரிப்ட் எடுத்துக்காட்டு:



#!/பின்/பாஷ்
எதிரொலி '3 வினாடிகளின் காலக்கெடுவுடன் தூக்கக் கட்டளையைத் தொடங்குதல்...'
நேரம் முடிந்தது 3வி தூங்கு 5வி
எதிரொலி 'தூக்கம் கட்டளை முடிந்தது.'


இங்கே நான் காலக்கெடுவின் கால அளவை 3 வினாடிகள் என்றும், 'ஸ்லீப்' கட்டளையின் கால அளவு 5 வினாடிகள் என்றும் குறிப்பிட்டுள்ளேன். 'உறக்கம்' கட்டளை பொதுவாக 5 வினாடிகளுக்கு இயங்கினாலும், 'நேரம்' கட்டளை 'தூக்கம்' கட்டளையை 3 வினாடிகளுக்குப் பிறகு நிறுத்தும்.






'டைம்அவுட்' கட்டளையைப் பயன்படுத்தும் போது தேவையற்ற தாமதத்தைத் தடுக்க, '-k' விருப்பத்தைப் பயன்படுத்தலாம். “-k” விருப்பம் ஒரு சமிக்ஞையை குறிப்பிடுகிறது, அது காலக்கெடு வரம்பை மீறினால் கட்டளைக்கு அனுப்பப்படும். இந்த சிக்னல், கட்டளையை அழகாக முடிக்கும் வரை காத்திருப்பதற்குப் பதிலாக, உடனடியாக நிறுத்தப்படும்.

எடுத்துக்காட்டாக, 'ஸ்லீப்' கட்டளையை ஐந்து வினாடிகளுக்கு இயக்க வேண்டும் என்று வைத்துக்கொள்வோம், ஆனால் மூன்று வினாடிகளுக்குப் பிறகு கட்டளையை டைம் அவுட் செய்ய விரும்புகிறோம் மற்றும் அது காலாவதி வரம்பை மீறினால் SIGINT சமிக்ஞையை அனுப்ப வேண்டும். பின்வரும் கட்டளையை இயக்குவதன் மூலம் இதைச் செய்யலாம்:



#!/பின்/பாஷ்
எதிரொலி '3 வினாடிகள் நேரம் முடிந்தவுடன் தூக்கக் கட்டளையைத் தொடங்குதல் மற்றும் 2 வினாடிகளுக்குப் பிறகு SIGINT சமிக்ஞை'
நேரம் முடிந்தது -k 2s 3s தூக்கம் 5s
எதிரொலி'
தூங்கு கட்டளை முடிந்தது. '


இங்கே நான் நேரம் முடிவடையும் காலத்தை 3 வினாடிகள் என்றும், அது காலாவதி வரம்பை மீறினால் SIGINT ஆக அனுப்பப்படும் சிக்னலையும் குறிப்பிட்டுள்ளேன். “-k 2s” விருப்பம், காலக்கெடு முடிந்த இரண்டு வினாடிகளுக்குப் பிறகு SIGINT சமிக்ஞை அனுப்பப்பட வேண்டும் என்பதைக் குறிப்பிடுகிறது.

முடிவுரை

பாஷில் கட்டளையை காலாவதியானது ஒரு பயனுள்ள கருவியாகும், இது கட்டளைகளை மிகவும் திறமையாக இயக்கவும் தேவையற்ற தாமதங்களைத் தடுக்கவும் உதவும். “டைம்அவுட்” கட்டளை மற்றும் “-k” விருப்பத்தைப் பயன்படுத்துவதன் மூலம், ஒரு கட்டளையை இயக்கும் நேரத்தைக் கட்டுப்படுத்தலாம் மற்றும் காலக்கெடு வரம்பை மீறினால் அதை உடனடியாக நிறுத்த ஒரு சிக்னலை அனுப்பலாம். இது நேரத்தை மிச்சப்படுத்தவும் உங்கள் ஸ்கிரிப்ட்களை மிகவும் திறமையாக இயக்கவும் உதவும்.