Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

आसानी से अपने Ruby स्क्रिप्ट की प्रक्रिया का नाम बदलें `top` और `ps` दृश्यता के लिए

जब भी आप लिनक्स या OSX पर कोई प्रोग्राम चलाते हैं, यह एक प्रक्रिया के अंदर चलता है। और हर प्रक्रिया का एक नाम होता है। यह नाम वही है जो आप `ps` या `top`, या `htop` जैसी कमांड चलाने पर देखते हैं।

आसानी से अपने Ruby स्क्रिप्ट की प्रक्रिया का नाम बदलें `top` और `ps` दृश्यता के लिए htop दाईं ओर के कॉलम में प्रक्रिया के नाम दिखाता है।

डिफ़ॉल्ट प्रक्रिया के नाम बेकार हो सकते हैं

डिफ़ॉल्ट रूप से किसी प्रक्रिया का नाम उस निष्पादन योग्य फ़ाइल के नाम से लिया जाता है जिसमें आपका प्रोग्राम होता है। यह अधिकांश निष्पादन योग्य के लिए अच्छा काम करता है। आखिरकार, यह समझ में आता है कि जब आप "less" चलाते हैं, तो इसका प्रक्रिया नाम "less" होना चाहिए।

लेकिन डिफ़ॉल्ट प्रक्रिया के नाम तब कम उपयोगी होते हैं जब आपके पास एक Ruby स्क्रिप्ट होती है जिसे आप कमांड लाइन से चला रहे होते हैं। नीचे दिए गए उदाहरण में, मैं एक Ruby स्क्रिप्ट चला रहा हूँ जो पांच सेकंड के लिए सोती है। यदि मैं साथ ही दूसरे टर्मिनल विंडो में "ps" चलाता हूँ, तो मुझे दिखता है कि मेरे स्लीपर का प्रक्रिया नाम "ruby sleep_5_seconds.rb" है। यदि मैं कमांड लाइन आर्गुमेंट जोड़ूं, तो वे भी प्रक्रिया के नाम में दिखाई देंगे। इससे प्रक्रिया को नाम से संदर्भित करना मुश्किल हो जाएगा।

आसानी से अपने Ruby स्क्रिप्ट की प्रक्रिया का नाम बदलें `top` और `ps` दृश्यता के लिए पूरा Ruby कमांड प्रक्रिया के नाम के रूप में सूचीबद्ध है

प्रक्रिया का नाम कैसे बदलें

सौभाग्य से आप Ruby में वर्तमान प्रक्रिया का नाम आसानी से बदल सकते हैं। यहाँ हमारी अपडेटेड स्क्रिप्ट है। यह अब अपने प्रक्रिया का नाम "sleeper" सेट करती है।

# `Process.setproctitle()` Ruby >= 2.1 में है # Ruby के पुराने संस्करणों के लिए, आप उपयोग कर सकते हैं # $PROGRAM_NAME = "sleeper" # या # $0 = "sleeper" Process.setproctitle("sleeper") sleep 5 

अब, जब हम प्रोग्राम चलाते हैं और इसके शीर्षक को प्रदर्शित करने के लिए ps का उपयोग करते हैं, तो हमें "sleeper" मिलता है

आसानी से अपने Ruby स्क्रिप्ट की प्रक्रिया का नाम बदलें `top` और `ps` दृश्यता के लिए Ruby में प्रक्रिया का शीर्षक बदलने से `ps` और `top` का आउटपुट बदल जाता है

लेकिन इससे भी बेहतर, अब हम आसानी से प्रक्रिया को नाम से संदर्भित कर सकते हैं। मान लीजिए मैं अपने स्लीपर के सोने का इंतजार करते-करते थक गया हूँ। मैं इसे `killall sleeper` कमांड का उपयोग करके मार सकता हूँ।

आसानी से अपने Ruby स्क्रिप्ट की प्रक्रिया का नाम बदलें `top` और `ps` दृश्यता के लिए आप `killall` कमांड का उपयोग करके प्रक्रियाओं को नाम से समाप्त कर सकते हैं

प्रक्रिया के नाम के माध्यम से सर्वर स्थिति प्रदर्शित करना

प्रक्रिया के शीर्षक को बदलने की हमारी नई क्षमता का एक दिलचस्प उपयोग लंबे समय तक चलने वाली प्रक्रियाओं के लिए स्थिति जानकारी प्रदर्शित करना है। यदि आपने कभी Unicorn चलाया है, तो यह परिचित लगना चाहिए:

\-+= 27185 deply unicorn master -c simple_unicorn_config.rb -l0.0.0.0:8080 |--- 27210 deply unicorn worker[0] -c simple_unicorn_config.rb -l0.0.0.0:8080 |--- 27211 deply unicorn worker[1] -c simple_unicorn_config.rb -l0.0.0.0:8080 |--- 27212 deply unicorn worker[2] -c simple_unicorn_config.rb -l0.0.0.0:8080 |--- 27213 deply unicorn worker[3] -c simple_unicorn_config.rb -l0.0.0.0:8080 

यह चार चाइल्ड प्रक्रियाओं के साथ Unicorn का एक उदाहरण है। हमारे sleep_5_seconds.rb उदाहरण की तरह ही, प्रक्रिया के नाम केवल प्रोसेस लॉन्च करने के लिए उपयोग की जाने वाली कमांड दिखाते हैं।

यदि स्टेटस लाइनें प्रदर्शित करें कि वर्कर व्यस्त है या निष्क्रिय, तो यह उपयोगी हो सकता है। कुछ इस तरह:

\-+= 27185 deply unicorn master -c simple_unicorn_config.rb -l0.0.0.0:8080 |--- 27210 deply unicorn worker[0] -c simple_unicorn_config.rb -l0.0.0.0:8080 BUSY |--- 27211 deply unicorn worker[1] -c simple_unicorn_config.rb -l0.0.0.0:8080 |--- 27212 deply unicorn worker[2] -c simple_unicorn_config.rb -l0.0.0.0:8080 |--- 27213 deply unicorn worker[3] -c simple_unicorn_config.rb -l0.0.0.0:8080 BUSY 

आप वास्तव में इसे Rack मिडलवेयर के साथ काफी आसानी से कर सकते हैं। यहाँ एक उदाहरण है कि यह कैसा दिख सकता है:

class UpdateProcessTitle def initialize(app) @app = app end def call(env) title = $0 $0 = $0 + " BUSY" status, headers, body = @app.call(env) $0 = title [status, headers, body] end end 

मुझे हर वेब पेज रिक्वेस्ट पर प्रक्रिया का शीर्षक सेट करने के प्रदर्शन निहितार्थ का कोई अंदाजा नहीं है। तो इसे एक चुटकी नमक के साथ लें। लेकिन फिर भी, यह एक बहुत अच्छा विचार है।

यदि आप इस विचार का अधिक उन्नत कार्यान्वयन देखना चाहते हैं - जो वास्तव में उत्पादन में उपयोग किया गया है - तो थॉमस वरानेकस के Unicorn वर्कर प्रक्रिया के नामों को ओवरराइड करने पर बेहतरीन ब्लॉग पोस्ट देखें।


  1. Facebook पर अपना नाम कैसे बदलें: डेस्कटॉप और मोबाइल गाइड Facebook पर अपना नाम कैसे बदलें: डेस्कटॉप और मोबाइल गाइड

    क्या Facebook पर आपका वर्तमान नाम अब आपसे मेल नहीं खाता? शादी होने से लेकर पहले नाम के बजाय मिडिल नाम से जाने की इच्छा तक, आप Facebook पर अपना नाम बदल सकते हैं। हालांकि कुछ प्रतिबंध हैं, प्रक्रिया आश्चर्यजनक रूप से सरल है, खासकर Facebook के लिए। अपनी सीमाएं जानें Facebook पर अपना नाम बदलने से पहले,

  1. अपने iPhone का नाम आसानी से कैसे बदलें और यह क्यों मायने रखता है अपने iPhone का नाम आसानी से कैसे बदलें और यह क्यों मायने रखता है

    आपके नए iPhone का एक नाम होता है जिसमें डिफ़ॉल्ट रूप से आपका असली नाम शामिल होता है। जब तक आप अपने Apple ID के लिए एक छद्म नाम का उपयोग नहीं करते या अपना iPhone सेट करते समय, आपका असली नाम आपके iPhone के नाम में भी दिखाई देगा। यहां अपने iPhone का नाम बदलने का तरीका बताया गया है। यह ट्यूटोरियल यह भी

  1. फेसबुक पर अपना नाम कैसे बदलें – चरण-दर-चरण गाइड फेसबुक पर अपना नाम कैसे बदलें – चरण-दर-चरण गाइड

    क्या आप फेसबुक पर अपना प्रोफाइल नाम अपडेट या संपादित करना चाहते हैं? चाहे आपकी अभी शादी हुई हो या आप सिर्फ मनोरंजन के लिए फेसबुक पर अपना नाम बदलना चाहते हों। यहां फेसबुक पर प्रोफाइल नाम बदलने के चरण दिए गए हैं। फेसबुक को किसी परिचय की आवश्यकता नहीं है। यह एक लोकप्रिय सोशल नेटवर्किंग साइट है जो अपने