मैं एक रखरखाव दिनचर्या को स्वचालित करने पर काम कर रहा हूं जिसमें एक स्क्रिप्ट को शुरू करना और रोकना शामिल है जो स्क्रीन सत्र में चल रहा है। मेरा दृष्टिकोण स्क्रीन सत्र को मारना है, और फिर इसे पुनः आरंभ करें और दोनों स्क्रिप्ट की क्षमताओं का उपयोग करके स्क्रिप्ट के भीतर से कमांड को चलाएं स्क्रीन बनाने के लिए स्क्रीन को संलग्न करने की आवश्यकता के बिना एक कमांड पास करें।
हालांकि, मुझे इससे मुश्किलें हो रही हैं। मैं स्क्रीन को सही ढंग से बना सकता हूं इसके बिना यह अटैचमेंट का उपयोग कर सकता है screen -d -m -S screen_name
। हालाँकि, यदि मैं इसके आधार पर एक कमांड चलाता हूं:
screen -S screen_name-X stuff "command 1"'echo -ne '\015''"command 2"'echo -ne '\015''
प्रतिध्वनि के साथ एकल उद्धरणों के बजाए गूंज '\ 015' के साथ लिपटे हुए हैं। यह उपयोगकर्ता को एंटर कुंजी दबाने के लिए अनुकरण करना है क्योंकि मेरे द्वारा उपयोग की जाने वाली कमांड एक निर्देशिका में जा रही है और वहां स्थित स्क्रिप्ट को निष्पादित कर रही है। यह कमांड काम करता है, लेकिन केवल अगर स्क्रीन एक बार इसे बनाने के लिए संलग्न किया गया है। जैसा कि मैं स्क्रीन बनाने और उसके भीतर कमांड चलाने की प्रक्रिया को स्वचालित करने की कोशिश कर रहा हूं, मैं एक स्क्रिप्ट के भीतर संलग्न और अलग होने से बचना चाहूंगा। मैं एक शेल स्क्रिप्ट बनाने के सुझाव की कोशिश करूंगा जिसमें मुझे स्क्रीन के भीतर निष्पादित करने और अपने परिणामों के अनुसार संपादित करने की आवश्यकता होगी।
क्या एक स्क्रीन बनाने और स्क्रीन के भीतर एक कमांड चलाने का एक तरीका है या तो एक कमांड में, या बनाने के बाद स्क्रीन को संलग्न करने के बिना, लेकिन कमांड के निष्पादन से पहले?
अग्रिम में धन्यवाद।
** अद्यतन - मैं एक शेल स्क्रिप्ट के भीतर निष्पादित करने की आवश्यकता के लिए सुझाव देने की कोशिश कर रहा हूं, मैं सफलतापूर्वक स्क्रीन बनाने और स्क्रीन के भीतर से कमांड निष्पादित करने में सक्षम हूं, लेकिन मुझे यह व्यवहार मिल रहा है कि जब स्क्रिप्ट चलना बंद हो जाए स्क्रीन भी बंद हो जाती है। यह समस्या नहीं होनी चाहिए क्योंकि स्क्रिप्ट एक लॉगिंग स्क्रिप्ट है जिसे केवल sys व्यवस्थापक के ज्ञान के साथ बंद करना चाहिए या स्क्रिप्ट के माध्यम से मैं विकसित करने की कोशिश कर रहा हूं, हालांकि स्क्रीन सेटअप को इस तरह से करना बेहतर होगा कि स्क्रीन स्क्रिप्ट बंद कर दिया है, तो गायब नहीं होता है। क्या यह व्यवहार प्राप्त करना संभव है? **
.screenrc
जिसमें लाइन शामिल है zombie kr
, जो एक समाप्त खिड़की को खुला रखेगा, और आप k
विंडोड को बंद करने के लिए, या r
फिर से विंडो में कमांड चलाने के लिए दबा सकते हैं। मेरे पास मेरे डिफ़ॉल्ट .rcrc के लिए यह है।