బాష్ మరియు పైథాన్తో పని చేస్తున్నప్పుడు, నడుస్తున్న ప్రక్రియను మృదువుగా ముగించడానికి మీరు SIGTERM సిగ్నల్ని పంపవచ్చు. ఈ పోస్ట్ Bash మరియు Pythonలో SIGTERMని పంపడం మరియు పట్టుకోవడం గురించి వివరిస్తుంది.
సైన్ టర్మ్ అంటే ఏమిటి
Unix సిస్టమ్లు మూడు రకాల సంకేతాలను కలిగి ఉంటాయి: సిస్టమ్, పరికరం మరియు వినియోగదారు నిర్వచించిన సంకేతాలు. ప్రతి సిగ్నల్ ఒక పూర్ణాంకం విలువను కలిగి ఉంటుంది. మీరు దాని పేరు లేదా దాని పూర్ణాంకం విలువను పేర్కొనడం ద్వారా సిగ్నల్ను అమలు చేయవచ్చు.
SIGTERM అనేది పూర్ణాంకం విలువ 15తో కూడిన సిగ్నల్. మీరు నడుస్తున్న ప్రక్రియను మృదువుగా ముగించాలనుకున్నప్పుడు ఇది అమలు చేయబడుతుంది. బాష్లో SIGTERMని ఉపయోగించడానికి క్రింది వాక్యనిర్మాణం ఉంది:
TARGET TERMని చంపండి < PID >
లేదా
చంపు - పదిహేను < PID >
మీరు కింది ఆదేశాన్ని ఉపయోగించి అందుబాటులో ఉన్న అన్ని సిగ్నల్లను తనిఖీ చేయవచ్చు:
చంపు -l
బాష్ మరియు పైథాన్లో SIGTERMని ఎలా పంపాలి మరియు పట్టుకోవాలి
మీరు వేర్వేరు సందర్భాలలో Bash మరియు Pythonలో SIGTERMని పంపవచ్చు మరియు పట్టుకోవచ్చు. మీరు మీ బాష్ లేదా పైథాన్ ప్రోగ్రామ్ను అమలు చేసినప్పుడు, ప్రోగ్రామ్ను చంపడానికి మీరు SIGTERM సిగ్నల్ని అమలు చేయవచ్చు. మీరు Bash మరియు Pythonలో SIGTERMని ఎలా పంపుతారు మరియు క్యాచ్ చేస్తారో అర్థం చేసుకోవడానికి మా వద్ద విభిన్న ఉదాహరణలు ఉన్నాయి.
1. పైథాన్ స్క్రిప్ట్ని ఉపయోగించడం
పైథాన్ 1.4 మరియు తాజా వెర్షన్లను ఉపయోగిస్తున్నప్పుడు, మీరు SIGTERMని పంపడానికి మరియు పట్టుకోవడానికి సిగ్నల్ లైబ్రరీని ఉపయోగించవచ్చు. మీ ప్రోగ్రామ్ వివిధ సంకేతాలను ఎలా సంగ్రహించాలో మరియు ప్రతిస్పందించాలో నిర్వచించడానికి మీ ప్రోగ్రామ్లోని లైబ్రరీని దిగుమతి చేయండి. సిగ్నల్ లైబ్రరీ అందుకున్న సిగ్నల్ యొక్క పూర్ణాంకాన్ని నివేదించడానికి సిగ్నల్ హ్యాండ్లర్ను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది. మీరు క్యాప్చర్ చేయబడిన సిగ్నల్ను నమోదు చేసుకోవచ్చు మరియు దాని PID వంటి ప్రస్తుత ప్రక్రియ గురించి సమాచారాన్ని పొందవచ్చు. ఒక ఉదాహరణ ఇద్దాం.
పంపిన సిగ్నల్ యొక్క పూర్ణాంకాన్ని పట్టుకునే పైథాన్ స్క్రిప్ట్ మా వద్ద ఉంది. అంతేకాకుండా, ఇది ప్రస్తుత ప్రక్రియ యొక్క PIDని పట్టుకుంటుంది.
కింది చిత్రంలో, మేము పైథాన్ స్క్రిప్ట్ను అమలు చేస్తాము మరియు ప్రతి కొన్ని సెకన్లకు అమలు చేసే కాసే లూప్ను కలిగి ఉంటాము. మరొక టెర్మినల్లో, పైథాన్ స్క్రిప్ట్ను అమలు చేయడం ద్వారా మనకు లభించే PIDని పేర్కొనడం ద్వారా ప్రాసెస్ను చంపడానికి SIGTERM సిగ్నల్ను పంపవచ్చు:
మేము SIGTERM సిగ్నల్ని పంపిన తర్వాత, స్క్రిప్ట్ అమలు చేయడం ఆపివేయడాన్ని మేము గమనించాము. ఎందుకంటే ఇది సిగ్నల్ పూర్ణాంకాన్ని సంగ్రహిస్తుంది. ఈ సందర్భంలో, మేము SIGTERM సిగ్నల్ కోసం కిల్ -15ని అమలు చేస్తాము. మీరు దాని పూర్ణాంక విలువకు బదులుగా SIGTERM కీవర్డ్ని ఉపయోగించి SIGTERM కిల్ సిగ్నల్ను కూడా పంపవచ్చు. మేము ఇప్పటికీ అదే ఫలితాన్ని పొందుతాము.
మీరు కింది వాక్యనిర్మాణాన్ని ఉపయోగించి మీ పైథాన్ జాబ్ని కూడా అమలు చేయవచ్చు:
కొండచిలువ3 < స్క్రిప్ట్/ఉద్యోగం > &మొదటి పద్ధతి వలె కాకుండా, మేము ఈ ఎంపికను ఉపయోగించి SIGTERMని పంపినప్పుడు, ఉద్యోగం అమలు చేయడం ప్రారంభించినప్పుడు జాబ్ ID ముద్రించబడడాన్ని మనం చూడవచ్చు. మేము దానిని చంపిన తర్వాత, మనకు 'పూర్తయింది' స్థితి వస్తుంది. SIGTERM దాని పేరు లేదా పూర్ణాంకాన్ని పేర్కొనడం ద్వారా పంపవచ్చు.
2. బాష్ స్క్రిప్ట్ని ఉపయోగించడం
మీరు బాష్ స్క్రిప్ట్ని అమలు చేస్తున్నప్పుడు సిగ్నల్ని పట్టుకోవడానికి “ట్రాప్” ఆదేశాన్ని ఉపయోగించవచ్చు. ఈ ఉదాహరణలో, మేము SIGTERM సిగ్నల్ను పట్టుకోవడానికి “ట్రాప్” ఆదేశాన్ని జోడించాము. SIGTERM సిగ్నల్ పంపబడకపోతే 'తేదీ' ఆదేశాన్ని వెయ్యి సార్లు అమలు చేయడానికి స్క్రిప్ట్ 'ఫర్' లూప్.
బాష్ స్క్రిప్ట్ను అమలు చేస్తున్నప్పుడు, మీరు నొక్కడం ద్వారా SIGTERM సిగ్నల్ను పంపవచ్చు Ctrl + Z కీబోర్డ్ కీలు. 'ట్రాప్' కమాండ్ ప్రసారం చేయబడిన సిగ్నల్ను సంగ్రహిస్తుంది మరియు 'ఫర్' లూప్ అమలు నుండి నిష్క్రమిస్తుంది. రన్నింగ్ జాబ్ SIGTERM సిగ్నల్ని పొందిందని మరియు ఆగిపోయిందని నిర్ధారించే అవుట్పుట్ మీకు లభిస్తుంది.
మీరు బాష్లో SIGTERMని ఎలా పంపుతారు మరియు పట్టుకుంటారు.
ముగింపు
ఉద్యోగం లేదా ప్రోగ్రామ్ను అమలు చేస్తున్నప్పుడు విభిన్న లక్ష్యాలను సాధించడానికి మీరు వేర్వేరు సంకేతాలను పంపవచ్చు. ప్రోగ్రామ్ను సాఫ్ట్గా ఆపడానికి SIGTERM పంపబడుతుంది. పైథాన్ కోసం, సిగ్నల్ను పట్టుకోవడానికి మీకు సిగ్నల్ హ్యాండ్లర్ అవసరం మరియు మీరు “కిల్” ఆదేశాన్ని ఉపయోగించి SIGTERMని పంపవచ్చు. SIGTERM సిగ్నల్ను క్యాప్చర్ చేయడానికి మరియు పంపడానికి మీరు బాష్లో “ట్రాప్” కమాండ్ మరియు కీబోర్డ్ కీలను ఉపయోగించవచ్చు. దీన్ని ఎలా సాధించాలో వివరంగా ఈ పోస్ట్ విభిన్న ఉదాహరణలను అందించింది.