Linux में प्रक्रियाओं का प्रबंधन सिस्टम प्रशासकों और डेवलपर्स दोनों के लिए एक बुनियादी कौशल है। चाहे आप किसी गलत व्यवहार करने वाले एप्लिकेशन की समस्या निवारण कर रहे हों या किसी सेवा को रोक रहे हों, यह जानना आवश्यक है कि किसी प्रक्रिया को सुरक्षित रूप से कैसे समाप्त/मारें। यह मार्गदर्शिका आपको प्रक्रियाओं को प्रभावी ढंग से प्रबंधित करने के चरणों से अवगत कराएगी, जिनमें उन्नत विशेषाधिकारों के साथ शुरू की गई प्रक्रियाएँ भी शामिल हैं, जिसमें kill, pkill जैसी कमांड का उपयोग करना और ज़ोंबी प्रक्रियाओं से निपटना शामिल है।
उन्नत विशेषाधिकारों के साथ शुरू की गई प्रक्रिया को मारना
जब कोई प्रक्रिया sudo के साथ शुरू की जाती है, तो उसे समाप्त करने के लिए उसी स्तर के विशेषाधिकार की आवश्यकता होती है। ऐसी प्रक्रियाओं को सुरक्षित रूप से रोकने के लिए इन चरणों का पालन करें:
1. प्रक्रिया ID (PID) खोजें
पहला चरण लक्ष्य प्रक्रिया की प्रक्रिया ID (PID) का पता लगाना है, जिसके लिए ps कमांड का उपयोग करें।
ps -ef | grep <process_name>
यह कमांड प्रक्रिया के बारे में विवरण दिखाती है, जिसमें उसका PID भी शामिल है।
2. प्रक्रिया को रोकें
PID मिल जाने पर, प्रक्रिया को समाप्त करने के लिए उन्नत विशेषाधिकारों के साथ kill कमांड का उपयोग करें:
sudo kill -15 <PID>
मुख्य बिंदु:
- SIGTERM (15): यह संकेत प्रक्रिया से विनम्रता से रुकने के लिए कहता है, जिससे वह बाहर निकलने से पहले संसाधनों को साफ़ कर सकती है।
- SIGKILL (9): इस संकेत का उपयोग केवल अंतिम उपाय के रूप में करें। यह बिना सफाई के प्रक्रिया को जबरन समाप्त कर देता है, जिससे फ़ाइलें दूषित हो सकती हैं या संचालन अधूरे रह सकते हैं।
सरलता के लिए pkill का उपयोग करना
त्वरित विकल्प के रूप में, pkill कमांड आपको PID को मैन्युअल रूप से खोजे बिना नाम से प्रक्रिया समाप्त करने देता है।
1. प्रक्रियाओं की जाँच करें
किसी प्रक्रिया को मारने से पहले, pgrep का उपयोग करके मेल खाने वाली प्रक्रियाओं की जाँच करें:
pgrep -l <process_name>
यह कमांड दिए गए नाम से मेल खाने वाली सभी प्रक्रियाओं को उनके PID सहित सूचीबद्ध करती है।
2. प्रक्रिया को मारें
सत्यापित हो जाने पर, समाप्ति संकेत भेजने के लिए pkill का उपयोग करें:
pkill <process_name>
प्रो टिप: हमेशा pgrep के परिणामों की दोबारा जाँच करें, ताकि आप गलती से गलत प्रक्रिया समाप्त न कर दें।
ज़ोंबी प्रक्रियाओं से निपटना
ज़ोंबी प्रक्रियाएँ वे होती हैं जिन्होंने निष्पादन पूरा कर लिया है लेकिन फिर भी प्रक्रिया तालिका में बनी रहती हैं, अपनी मूल प्रक्रिया द्वारा साफ़ किए जाने की प्रतीक्षा करती हैं। हालाँकि आप सीधे ज़ोंबी प्रक्रिया को नहीं मार सकते, लेकिन आप उसकी मूल प्रक्रिया को संबोधित करके इसे हल कर सकते हैं।
1. ज़ोंबी प्रक्रियाओं की पहचान करें
ज़ोंबी प्रक्रियाओं की पहचान करने के लिए ps कमांड का उपयोग करें। वे <defunct> के रूप में आउटपुट में दिखाई देते हैं:
ps aux | grep -i <process_name>
2. ज़ोंबी प्रक्रिया को हल करें
ज़ोंबी प्रक्रिया को साफ़ करने के लिए, इन चरणों का पालन करें:
a. मूल प्रक्रिया की पहचान करें
ज़ोंबी प्रक्रिया की मूल प्रक्रिया ID (PPID) खोजें:
ps -o ppid= -p <zombie_pid>
b. मूल प्रक्रिया को मारें या पुनरारंभ करें
मूल प्रक्रिया को समाप्त करें या पुनरारंभ करें ताकि वह ज़ोंबी को साफ़ कर सके:
sudo kill -15 <parent_pid>
यदि मूल प्रक्रिया को पुनरारंभ नहीं किया जा सकता, तो आपको अंतिम उपाय के रूप में सिस्टम को रीबूट करने की आवश्यकता हो सकती है।
प्रक्रिया प्रबंधन के लिए सर्वोत्तम अभ्यास
- संकेतों का बुद्धिमानी से उपयोग करें: हमेशा
SIGTERM(15) जैसे संकेतों कोSIGKILL(9) की तुलना में प्राथमिकता दें, ताकि प्रक्रियाओं को सुचारू रूप से बाहर निकलने का मौका मिले। - कमांड की दोबारा जाँच करें:
pgrepयाpkillजैसे उपकरणों का उपयोग करते समय, अप्रत्याशित परिणामों से बचने के लिए परिणामों की जाँच करें। - सिस्टम संसाधनों की निगरानी करें: इष्टतम प्रदर्शन बनाए रखने के लिए ज़ोंबी प्रक्रियाओं या संसाधन-भूखे एप्लिकेशन के लिए अपने सिस्टम की नियमित रूप से निगरानी करें।
संदर्भ
अधिक जानकारी के लिए, इन आधिकारिक संसाधनों को देखें: