- - लिनक्स पर निलंबित और कमांड को कैसे चलाएं और लिनक्स पर फिर से शुरू करें

लिनक्स पर निलंबित और कमांड को कैसे चलाएं और लिनक्स पर फिर से शुरू करें

स्क्रिप्ट और कमांड चलाने का सबसे अच्छा तरीका हैनिलंबित करने से पहले (या फिर शुरू होने के बाद) लिनक्स पर निलंबित और फिर से शुरू करें सिस्टमैट इनिट सिस्टम का उपयोग करना है। यह इस तथ्य के कारण है कि init सिस्टम सीधे कर्नेल, और पावर सिस्टम के साथ इंटरैक्ट करता है। इस उपकरण के साथ काम करना सीखना किसी भी उपयोगकर्ता को अपने लिनक्स ऑपरेटिंग सिस्टम पर बहुत अधिक नियंत्रण प्राप्त करने की अनुमति देगा,

कृपया समझें कि इनिट के साथ खिलवाड़ करनाआपके पीसी पर सिस्टम खतरनाक हो सकता है यदि आप नहीं जानते कि आप क्या कर रहे हैं। इस ट्यूटोरियल में दिए गए निर्देशों का पालन यथासंभव सुनिश्चित करें, ताकि किसी भी संभावित दुर्घटना से बचा जा सके।

हर आधुनिक लिनक्स वितरण का समर्थन नहीं करता हैsystemd init सिस्टम। कुछ पूरी तरह से अपस्टार्ट या कुछ और का उपयोग करते हैं। इस ट्यूटोरियल में, हम सिस्टमड पर ध्यान केंद्रित करेंगे क्योंकि यह सबसे सामान्य दीक्षा प्रणाली है। यदि आप इस कार्य को उस चीज़ पर पूरा करना चाहते हैं, जो इस लेख में हमारे द्वारा कवर किए जाने पर नहीं चलती है, तो निर्देशों के लिए अपने ऑपरेटिंग सिस्टम के मैनुअल पर विचार करें।

नोट: डेबियन उपयोगकर्ताओं को सभी उदाहरणों को बदलना चाहिए usr / lib / systemd / प्रणाली नींद साथ में / Lib / systemd / प्रणाली नींद /

सस्पेंड से पहले एक कमांड चलाना

स्क्रिप्ट को निलंबित करने से पहले चलाने के लिए, कोई भी स्क्रिप्ट स्क्रिप्ट फ़ाइल में रखें / Usr / lib / systemd / प्रणाली नींद / निर्देशिका। स्क्रिप्ट स्वयं कुछ भी कर सकते हैं, लेकिन एक निश्चित वाक्यविन्यास है जिसका पालन करना चाहिए। एक टर्मिनल विंडो खोलकर शुरू करें। सुडो-एस का उपयोग करके, एक रूट शेल प्राप्त करें।

अगला, सिस्टम-स्लीप डायरेक्टरी के अंदर नैनो टेक्स्ट एडिटर अप:

nano /usr/lib/systemd/system-sleep/pre-suspend.sh

स्क्रिप्ट की शुरुआत में शेबंग जोड़ें। इसे जोड़ना महत्वपूर्ण है, और इसके बिना, दुभाषिया कोड और आदेशों को सही ढंग से पढ़ने में सक्षम नहीं होगा।

#!/bin/bash/

स्क्रिप्ट का अगला भाग "यदि" है। यह पावर कंट्रोल सिस्टम को बताएगा कि "यदि" सिस्टम सस्पेंड के लिए नीचे जाने वाला है, तो कुछ होना चाहिए। नीचे दिए गए कोड को चिपकाएँ:

if [ "${1}" == "pre" ]; then
sh /path/to/script/to/run.sh

परिवर्तन sh /path/to/script/to/run.sh स्क्रिप्ट में जो कुछ भी आप अपने लिनक्स पीसी (या सर्वर) पर चलाना चाहते हैं, उससे ठीक पहले सिस्टम डाउन हो जाता है। ध्यान रखें कि "अगर" के बाद की रेखा को सीधे होने की आवश्यकता नहीं है sh /path/to/script/to/run.sh। आप विभिन्न कमांड को निष्पादित करने के लिए भी इसका उपयोग कर सकते हैं। जब तक bash इसे कमांड के रूप में पहचान सकता है, तब तक यह चलेगा।

"सस्पेंड से पहले" स्क्रिप्ट का अंतिम भाग "और यदि" भाग जोड़ना है। स्क्रिप्ट के इस पहलू को संशोधित करने की आवश्यकता नहीं है, जैसा कि इस उदाहरण में, हम कुछ करने के बारे में चिंतित हैं इससे पहले सिस्टम नीचे चला जाता है, न कि जब वह वापस उठता है।

elif [ "${1}" == "post" ]; then
# nothing goes here
fi

जब सब कुछ फ़ाइल में जोड़ा गया है, तो दबाएं Ctrl + O नैनो को बचाने के लिए।

रिज्यूम के बाद एक कमांड चलाना

फिर से शुरू होने के बाद एक कमांड को निष्पादित करना बहुत पसंद हैसस्पेंड होने से पहले कुछ चल रहा है। केवल वास्तविक अंतर स्क्रिप्ट के "यदि" भाग के बाद एक कमांड जोड़ने के बजाय है, तो आप "एलिफ" लाइन के बाद होने वाले कोड का सबसे महत्वपूर्ण हिस्सा बनाते हैं।

पोस्ट-रिज्यूम स्क्रिप्ट बनाने के लिए, पहले शेबंग को पहली पंक्ति के रूप में जोड़ें।

#!bin/bash

अगली पंक्ति में, स्क्रिप्ट का "यदि" भाग जोड़ें।

if [ "${1}" == "pre" ]; then
# nothing goes here

उस बिट कोड को बैश स्क्रिप्ट में चिपकाए जाने के साथ, "और यदि" अनुभाग पेस्ट करें।

elif [ "${1}" == "post" ]; then
sh /path/to/script/to/run.sh
fi

एक बार फिर, "एलिफ" लाइन के तहत कुछ भी लिखना ठीक है। जब तक यह एक सामान्य कमांड ऑपरेशन सिस्टम है और बैश इसे चलाएगा।

स्टार्टअप और रिज्यूमे में कमांड चलाना

यदि आप दो विपरीत कमांड चलाना चाहते हैं; एकनिलंबित करने से पहले, और फिर से शुरू करने पर, यह संभव है। इसका मतलब सिर्फ स्क्रिप्ट को कस्टमाइज़ करना और दोनों both अगर ”लाइन के तहत लाइनों को जोड़ना है, साथ ही साथ“ और ”लाइन।

हमेशा की तरह, दुभाषिया के लिए स्क्रिप्ट में शेबंग पोस्ट करके शुरू करें।

#!/bin/bash

अगला, यदि कोड का अनुभाग पेस्ट करें।

if [ "${1}" == "pre" ]; then
# replace with command

यदि, सिस्टम के नीचे जाने से पहले आप जो भी कमांड चलाना चाहते हैं, उसके साथ "# कमांड के साथ बदलें" को बदलें। फिर, "एलिफ" अनुभाग पर जाएं, और ऐसा ही करें।

elif [ "${1}" == "post" ]; then
#  replace with command
fi

फ़ाइल को Ctrl + O के साथ सहेजें,

अनुमतियाँ अद्यतन करना और स्क्रिप्ट का उपयोग करना

सभी आवश्यक कमांड स्क्रिप्ट फ़ाइल के अंदर हैं, लेकिन इसे चलाने से पहले, आपको अनुमतियों को अपडेट करना होगा। एक टर्मिनल खोलें, और इसके साथ रूट प्राप्त करें: su या sudo -s। फिर करो:

chmod +x /usr/lib/systemd/system-sleep/pre-suspend.sh

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

नोट: सिस्टमैड सिस्टम-स्लीप के बारे में प्रश्न हैं? के साथ मैनुअल की जाँच करें आदमी systemd-suspend.service.

टिप्पणियाँ