processes unix process control
यूनिक्स में प्रक्रिया प्रबंधन:
यूनिक्स में, कर्नेल के बाहर के सभी निर्देशों को एक प्रक्रिया के संदर्भ में निष्पादित किया जाता है।
एक प्रक्रिया निर्देशों का एक क्रम है और प्रत्येक प्रक्रिया में इसके साथ जुड़े नियंत्रित डेटा का एक ब्लॉक होता है। फ़ाइलों को कैसे हेर-फेर किया जा सकता है, उसी तरह प्रक्रियाओं में हेरफेर किया जा सकता है।
उदाहरण के लिए, जैसे list ls 'का उपयोग फ़ाइलों की सूची देखने के लिए किया जा सकता है, can ps' का उपयोग प्रक्रियाओं की सूची देखने के लिए किया जा सकता है।
यूनिक्स वीडियो # 23:
इस ट्यूटोरियल में, हम कवर करेंगे कि किस प्रक्रिया से संबंधित जानकारी संग्रहीत है और कुछ कमांड्स का भी वर्णन करें जो प्रक्रियाओं को प्रबंधित करने के लिए उपयोग किए जाते हैं। हम यह भी बताएंगे कि कमांड स्क्रिप्ट को कैसे डीबग किया जा सकता है।
आप क्या सीखेंगे:
यूनिक्स प्रक्रिया की जानकारी
प्रक्रिया तालिका में उन सभी प्रक्रियाओं की जानकारी होती है जो वर्तमान में चल रही हैं। इस तालिका का मुख्य उद्देश्य सभी चल रही प्रक्रियाओं को प्रभावी ढंग से प्रबंधित करना है।
डेटाबेस डेवलपर साक्षात्कार प्रश्न और उत्तर पीडीएफ
ध्यान दें: मल्टीटास्किंग और मल्टी-यूजर ओएस के रूप में, यूनिक्स में एक ही समय में कई प्रक्रियाएं चलेंगी।
तालिका में जानकारी शामिल है:
- प्रक्रिया आईडी
- पैरेंट प्रोसेस आईडी
- प्रक्रियाओं की स्थिति
- सि पि यु का उपयोग
यूनिक्स में प्रक्रियाएं विभिन्न परिस्थितियों के आधार पर विभिन्न राज्यों से गुजरती हैं। राज्य परिवर्तनों को ट्रिगर किया जा सकता है कि क्या किसी प्रक्रिया को पूरा करने के लिए पढ़ने या लिखने के लिए प्रतीक्षा करने की आवश्यकता है, या जब एक और अधिक तत्काल प्रक्रिया को चलाने का मौका दिया जाना चाहिए।
प्रक्रिया नियंत्रण कमांड
प्रक्रियाओं की समीक्षा और हेरफेर करने के लिए उपलब्ध कई कमांड हैं। प्रक्रिया स्थिति की जानकारी देखने के लिए 'ps' कमांड का उपयोग किया जा सकता है।
आदेश | पीएस - वर्तमान में चल रही सभी प्रक्रियाओं की जानकारी देता है। |
---|---|
आम सिंटेक्स | $ ps (विकल्प) |
उदाहरण 1 | $ पीएस PID, टर्मिनल नाम, निर्माण का समय और प्रक्रियाओं के नाम सहित प्रक्रिया के बारे में जानकारी देता है। |
जैसा कि पहले के ट्यूटोरियल में चर्चा की गई है, प्रक्रियाओं को अग्रभूमि, पृष्ठभूमि या डेमन के रूप में वर्गीकृत किया जा सकता है। जब एक कमांड टर्मिनल से चलाया जाता है तो यह अग्रभूमि में सामान्य चलता है। पृष्ठभूमि में एक प्रक्रिया को चलाने के लिए, कमांड के अंत में ’& 'बटन का उपयोग किया जा सकता है।
उदाहरण:
$ grep “how” file1 > file2 &
यह कमांड 'कैसे' पैटर्न वाली लाइनों को खोजेगा और फाइल 2 में आउटपुट को स्टोर करेगा। यदि फ़ाइल 1 यथोचित रूप से बड़ी है, तो हम अन्य कार्यों के साथ आगे बढ़ना चाहते हैं, और इस कमांड को पृष्ठभूमि में चला सकते हैं। अंत में run & 'के साथ, यह कमांड पृष्ठभूमि में एक प्रक्रिया के रूप में चलेगी।
’^ Z 'कमांड का उपयोग करके अग्रभूमि प्रक्रिया को निलंबित करना संभव है। यह कमांड वर्तमान अग्रभूमि प्रक्रिया को पृष्ठभूमि में निलंबित स्थिति में ले जाती है। वहां से, प्रक्रिया को या तो 'bg' कमांड का उपयोग करके बैकग्राउंड में फिर से शुरू किया जा सकता है, या इसे 'fg' कमांड का उपयोग करके अग्रभूमि में वापस लाया जा सकता है।
प्रत्येक प्रक्रिया भी एक प्राथमिकता के साथ जुड़ी हुई है। इसका उपयोग यह सुनिश्चित करने के लिए किया जाता है कि ओएस विभिन्न प्रसंस्करण कार्यों के लिए समय को पर्याप्त रूप से आवंटित करने में सक्षम है। Priority अच्छा 'कमांड का उपयोग किसी प्रक्रिया की प्राथमिकता को कम करने के लिए किया जा सकता है और इस प्रकार अन्य प्रक्रियाओं के लिए' अच्छा 'हो सकता है, अर्थात
$ अच्छा है
यह लाइन निर्दिष्ट कमांड को कम प्राथमिकता पर चलाएगी - डिफ़ॉल्ट रूप से, प्राथमिकता 10. से कम हो जाएगी। कमांड एक पैरामीटर भी लेती है जिसका उपयोग 'भिन्नता' के एक अलग स्तर का उपयोग करने के लिए किया जा सकता है।
उदाहरण:
$ nice -20 ls
यह कमांड 20 से कम की प्राथमिकता के साथ 'एलएस' चलाता है।
नकारात्मक also निकनेस ’के साथ प्राथमिकता बढ़ाना भी संभव है। हालांकि, इसके लिए सुपरयुसर की अनुमति चाहिए।
जब एक टर्मिनल या लॉगिन सत्र बंद हो जाता है, तो यह थ्रू चाइल्ड प्रक्रियाओं को SIGHUP संकेत भेजता है। डिफ़ॉल्ट रूप से, यह संकेत बच्चे की प्रक्रियाओं को समाप्त करने का कारण होगा। 'Nohup' कमांड का उपयोग लॉगिन सत्र समाप्त होने पर भी कमांड को चालू रखने की अनुमति देने के लिए किया जा सकता है।
उदाहरण:
$ nohup soft file1 > file2
इस आदेश के साथ, फाइल 1 प्रक्रिया में फाइल 1 को छाँटने और सहेजने की प्रक्रिया जारी रहेगी, भले ही हमने सिस्टम से लॉग आउट किया हो।
अनुमतियों के आधार पर किसी भी प्रक्रिया को समाप्त करने के लिए 'किल' कमांड का उपयोग किया जा सकता है।
उदाहरण:
$ kill (options)
यह आदेश प्रक्रिया आईडी के साथ एक प्रक्रिया को समाप्त करेगा। प्रक्रिया का PID 'ps' कमांड का उपयोग करके प्राप्त किया जा सकता है।
इस 'at' कमांड का उपयोग भविष्य में किसी विशेष तिथि और समय पर कमांड निष्पादित करने के लिए किया जाता है।
उदाहरण:
$ at 8pm sort file1>file2
यूनिक्स डिबगिंग
यूनिक्स आपकी कमांड लिपियों में बग्स को खोजने में मदद करने के लिए कई तंत्र प्रदान करता है। इन तंत्रों का उपयोग यह पता लगाने के लिए किया जा सकता है कि किस चीज को निष्पादित किया जा रहा है यानी जिस क्रम में कमांड निष्पादित किए जाते हैं। ट्रेस का उपयोग स्क्रिप्ट के तर्क और नियंत्रण प्रवाह को समझने और सत्यापित करने के लिए किया जा सकता है।
=> सेट -v
वाचाल प्रकार: कमांड चलाने से पहले इस विकल्प को सेट करने से यह सुनिश्चित हो जाएगा कि जिस कमांड को निष्पादित किया जाएगा वह वास्तव में निष्पादित होने से पहले stdout में प्रिंट किया गया है।
=> सेट -x
निष्पादन ट्रेस मोड: इस विकल्प को सेट करना प्रत्येक कमांड को प्रदर्शित करेगा क्योंकि इसे अपने तर्कों के साथ निष्पादित किया जाता है।
=> सेट-एन
कोई निष्पादन मोड: इस विकल्प को सेट करना वास्तव में किसी भी कमांड को चलाने के बिना किसी भी त्रुटि को दर्शाता है।
अधिक जानने के लिए हमारे आगामी ट्यूटोरियल को देखें उन्नत शैल स्क्रिप्टिंग।
PREV ट्यूटोरियल | अगले ट्यूटोरियल
अनुशंसित पाठ
- यूनिक्स प्रक्रियाएं नियंत्रण प्रणाली जैसे Ps और Top (Part C)
- यूनिक्स कमांड्स: बेसिक और एडवांस्ड यूनिक्स कमांड्स विद एग्जाम्पल्स
- यूनिक्स टेक्स्ट प्रोसेसिंग कमांड्स: यूनिक्स फिल्टर विथ उदाहरण
- यूनिक्स पाइप्स ट्यूटोरियल: यूनिक्स प्रोग्रामिंग में पाइप्स
- अधिक यूनिक्स फ़िल्टर और Awk, टेक्स्ट प्रोसेसिंग में सेड कमांड
- उदाहरण के साथ यूनिक्स शैल स्क्रिप्ट में कमांड लाइन तर्क
- शुरुआती के लिए UNIX ट्यूटोरियल (20+ में गहराई से यूनिक्स प्रशिक्षण वीडियो)
- यूनिक्स में दो फाइलों की तुलना कैसे करें: फाइल तुलना कमांड