क्या आपने कभी ऐसी स्थिति का सामना किया है जहां आपको अपने लिनक्स मशीन पर एक विशिष्ट पोर्ट पर चल रही प्रोसेस को रोकने की आवश्यकता है?
आप चिंतित हो सकते हैं कि आपके द्वारा चलाया जा रहा एप्लिकेशन गलत व्यवहार कर रहा है या आपके नेटवर्क संसाधनों या स्थानीय CPU शक्ति को हड़प रहा है। ऐसा एप्लिकेशन एक सुरक्षा खतरा भी हो सकता है जिसे आप समाप्त करना चाहते हैं।
कारण जो भी हो, आप टर्मिनल से fuser, lsof, और netstat कमांड (kill के साथ) का उपयोग करके किसी भी लिनक्स प्रोसेस को पोर्ट नंबर का उपयोग करके ढूंढ और मार सकते हैं। ये कमांड अधिकांश लिनक्स ऑपरेटिंग सिस्टम पर काम करेंगे, जिसमें उबंटू शामिल है।
fuser कमांड का उपयोग करके लिनक्स प्रोसेस कैसे मारें
पोर्ट नंबर का उपयोग करके प्रोसेस को मारने के सबसे आसान तरीकों में से एक fuser कमांड का उपयोग करना है। यह लिनक्स टर्मिनल कमांड फाइल या सॉकेट एक्सेस करने वाली प्रोसेस को सूचीबद्ध या मार सकता है। यदि कोई ऐप नेटवर्क गतिविधि के साथ चलता है (और इस प्रकार एक खुले पोर्ट का उपयोग करता है), तो यह संभवतः इन दो चीजों में से एक कर रहा है।
आगे बढ़ने से पहले, आपको यह सुनिश्चित करना होगा कि आप अपने लिनक्स पीसी पर कमांड लाइन टर्मिनल का उपयोग करने में सहज हैं।
fuser का उपयोग करके पोर्ट नंबर का उपयोग करने वाली प्रोसेस को सूचीबद्ध करने के लिए, आप निम्न सिंटैक्स का उपयोग कर सकते हैं:
fuser -n protocol port
इस उदाहरण में, protocol tcp या udp हो सकता है, जबकि port वह पोर्ट नंबर है जिसे आप जांचना चाहते हैं। उदाहरण के लिए, यह देखने के लिए कि कौन सी प्रोसेस TCP पोर्ट 80 का उपयोग कर रही हैं, आप चला सकते हैं:
fuser -n tcp 80
यह उस पोर्ट का उपयोग करने वाली प्रोसेस की प्रोसेस आईडी (PIDs) प्रिंट करेगा।
उन प्रोसेस को मारने के लिए, आप fuser में -k विकल्प जोड़ सकते हैं। यह प्रत्येक प्रोसेस को SIGTERM सिग्नल भेजेगा, उनसे ग्रेसफुली समाप्त होने के लिए कहेगा। उदाहरण के लिए:
fuser -k -n tcp 80
यह TCP पोर्ट 80 का उपयोग करने वाली सभी प्रोसेस को मार देगा।
यदि कुछ प्रोसेस SIGTERM का जवाब नहीं देती हैं, तो आप -k के बजाय -KILL का उपयोग कर सकते हैं। यह किल सिग्नल (SIGKILL) भेजेगा, जो वर्तमान में चल रही आपके द्वारा पहचानी गई प्रोसेस को तुरंत समाप्त करने के लिए मजबूर कर सकता है। हालाँकि, इससे डेटा हानि या भ्रष्टाचार हो सकता है, इसलिए इसे सावधानी से उपयोग करें। उदाहरण के लिए:
fuser -KILL -n tcp 80
यह TCP पोर्ट 80 का उपयोग करने वाली सभी प्रोसेस को जबरदस्ती मार देगा। यदि आप किसी समस्या में पड़ते हैं, तो इन कमांड को सुपर यूजर के रूप में चलाएँ (sudo कमांड का उपयोग करके) या रूट यूजर का उपयोग करके।
lsof कमांड का उपयोग करके लिनक्स प्रोसेस कैसे मारें
लिनक्स पीसी पर पोर्ट नंबर का उपयोग करके प्रोसेस को मारने का एक और तरीका lsof कमांड का उपयोग करना है। यह कमांड आपके सिस्टम पर खुली फाइलों और सॉकेट को सूचीबद्ध कर सकता है।
किसी विशिष्ट पोर्ट नंबर का उपयोग करने वाली प्रोसेस को सूचीबद्ध करने के लिए, आप निम्न सिंटैक्स का उपयोग कर सकते हैं:
lsof -i protocol:port
जैसा पहले, protocol tcp या udp हो सकता है, जबकि port वह पोर्ट नंबर है जिसे आप जांचना चाहते हैं। उदाहरण के लिए, यह देखने के लिए कि कौन सी प्रोसेस TCP पोर्ट 53 (आमतौर पर DNS अनुरोधों के लिए उपयोग किया जाता है) का उपयोग कर रही हैं, आप यह कमांड चला सकते हैं:
lsof -i tcp:53
यह उस पोर्ट का उपयोग करने वाली प्रत्येक प्रोसेस के बारे में कुछ जानकारी प्रिंट करेगा, जिसमें इसकी PID शामिल है।
उन प्रोसेस को मारने के लिए, आप lsof के साथ -t विकल्प का उपयोग कर सकते हैं। यह केवल किसी अन्य जानकारी के बिना प्रोसेस की PIDs प्रिंट करेगा। आप इस आउटपुट को किसी भी सिग्नल विकल्प के साथ kill कमांड में पाइप कर सकते हैं। उदाहरण के लिए:
kill $(lsof -t -i tcp:53)
यह TCP पोर्ट 53 का उपयोग करने वाली सभी प्रोसेस को SIGTERM सिग्नल (डिफ़ॉल्ट) भेजेगा।
यदि कुछ प्रोसेस पहले की तरह SIGTERM सिग्नल का जवाब नहीं देती हैं, तो आप kill के बाद -9 का उपयोग कर सकते हैं। यह पहले की तरह SIGKILL सिग्नल भेजेगा, उन्हें तुरंत समाप्त करने के लिए मजबूर करेगा लेकिन इससे डेटा हानि या भ्रष्टाचार भी हो सकता है। उदाहरण के लिए:
kill -9 $(lsof -t -i tcp:53)
यह TCP पोर्ट 53 का उपयोग करने वाली सभी प्रोसेस को SIGKILL सिग्नल (डिफ़ॉल्ट) जबरदस्ती भेजेगा।
netstat कमांड का उपयोग करके लिनक्स प्रोसेस कैसे मारें
आप अपने लिनक्स पीसी पर सक्रिय और खुले नेटवर्क पोर्ट का उपयोग करके चल रही प्रोसेस को ट्रैक करने के लिए netstat कमांड का भी उपयोग कर सकते हैं। netstat आपको अपने सिस्टम पर नेटवर्क कनेक्शन और आंकड़े देखने देता है, जिससे आप समस्याग्रस्त प्रोसेस को पहचान सकते हैं।
पोर्ट नंबर का उपयोग करने वाली प्रोसेस को उनकी PIDs के साथ सूचीबद्ध करने के लिए, आपको दो विकल्प जोड़ने होंगे: -p, जो PIDs दिखाता है, और -l, जो केवल सुनने वाले सॉकेट दिखाता है।
आपको प्रोटोकॉल (tcp, udp, आदि) भी निर्दिष्ट करना होगा और वैकल्पिक रूप से स्थिति (LISTEN, आदि) द्वारा फ़िल्टर करना होगा। उदाहरण के लिए, यह देखने के लिए कि कौन सी TCP प्रोसेस किसी भी पोर्ट पर सुन रही हैं, आप चला सकते हैं:
netstat -p tcp -l
यह किसी भी पोर्ट पर सुन रहे प्रत्येक TCP सॉकेट के बारे में जानकारी प्रिंट करेगा, जिसमें इसकी PID शामिल है।
विशिष्ट पोर्ट द्वारा फ़िल्टर करने के लिए, आपको एक और विकल्प जोड़ना होगा: -n, जो नामों के बजाय संख्यात्मक पते दिखाता है। आपको सटीक पता फॉर्मेट भी निर्दिष्ट करना होगा: [protocol][@hostname|hostaddr][:service|port]।
उदाहरण के लिए, यह देखने के लिए कि कौन सी TCP प्रोसेस पोर्ट 80 पर सुन रही हैं, आप चला सकते हैं:
netstat -p tcp -l -n 80
यह पोर्ट 8080 पर सुन रहे प्रत्येक TCP सॉकेट के बारे में जानकारी प्रिंट करेगा, जिसमें इसकी PID शामिल है।
उन प्रोसेस को मारने के लिए, आप kill कमांड का उपयोग किसी भी सिग्नल विकल्प के साथ कर सकते हैं जो आप चाहते हैं और netstat से प्राप्त PIDs। उदाहरण के लिए:
kill 1234 5678
यह PID 1234 और 5678 वाली प्रोसेस को SIGTERM सिग्नल (डिफ़ॉल्ट) भेजेगा।
यदि कुछ प्रोसेस पहले की तरह SIGTERM सिग्नल का जवाब नहीं देती हैं, तो आप kill के बाद -9 का उपयोग कर सकते हैं। यह पहले की तरह SIGKILL सिग्नल भेजेगा, उन्हें तुरंत समाप्त करने के लिए मजबूर करेगा लेकिन पहले की तरह डेटा हानि या भ्रष्टाचार भी हो सकता है। उदाहरण के लिए:
kill -9 1234 5678
यह PID 1234 और 5678 वाली प्रोसेस को SIGKILL सिग्नल जबरदस्ती भेजेगा, उदाहरण के लिए। अपने चल रहे प्रोसेस के लिए सही PID से 1234 को बदलें।
अपने लिनक्स एप्लिकेशन को नियंत्रित करें
ऊपर उल्लिखित चरणों के लिए धन्यवाद, आप लिनक्स कमांड लाइन का उपयोग करके पोर्ट नंबर का उपयोग करके चल रहे लिनक्स प्रोसेस को त्वरित रूप से मार सकते हैं। प्रोसेस को मारते समय सावधानी का उपयोग करना याद रखें, विशेष रूप से SIGKILL सिग्नल के साथ, क्योंकि वे अवांछित दुष्प्रभाव पैदा कर सकते हैं—आखिरकार, आप सिस्टम अस्थिरता का कारण नहीं बनना चाहते।
लिनक्स पर अपने सिस्टम प्रदर्शन को अधिक बारीकी से देखना चाहते हैं? आप अगली बार लिनक्स पर अपने मेमोरी उपयोग की जांच करना चाह सकते हैं। यदि आप संभावित सुरक्षा जोखिम के बारे में चिंतित हैं, तो आप लिनक्स पर अपना पासवर्ड बदलना भी चाह सकते हैं।
नए लिनक्स वितरण पर स्विच करने की आवश्यकता है? यदि आप शुरुआती हैं, तो लिनक्स मिंट को एक सुरक्षित और स्थिर विकल्प मानें।