मैं स्वचालित रूप से कई स्क्रीन सत्र कैसे शुरू कर सकता हूं?


21

मैं एक कमांड बनाने की कोशिश कर रहा हूं जो लॉन्च करता है screen, विभिन्न नामों के साथ चार सत्र बनाता है, और चार अलग-अलग कमांड चलाता है।

मुझे पता है कि यह मैन्युअल रूप से कैसे किया जाता है:

1. screen
2. ./command1 args
3. CTRL-A :sessionname Session 1
4. CTRL-A C
5. (GOTO 2)

क्या मैं इसे बैश स्क्रिप्ट या कुछ और कर सकता हूं? मैं ऐसा कैसे करूंगा?

जवाबों:


15

screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS"$COMMANDपृष्ठभूमि में चल रहे एक स्क्रीन को खोल देगा ।

आप के साथ screen -lsऔर reattach के साथ सक्रिय सत्र देख सकते हैं screen -r "$SESSION_NAME"

मृत सत्र के साथ मारा जा सकता है screen -wipe


इससे काम हो जाता है!
ह्यूजेस

1
यह कमांड प्रत्येक कमांड के लिए एक नया स्क्रीन सेशन बनाता है। इसका उपयोग प्रत्येक कमांड के लिए एक विंडो वाला एकल स्क्रीन सत्र बनाने के लिए नहीं किया जा सकता है (जैसा कि प्रश्न में मैनुअल चरणों में किया जाता है)। इस प्रकार, यह प्रश्न का उत्तर नहीं देता है, और .screenrcनीचे दिए गए उत्तर को इसके बजाय स्वीकार किया जाना चाहिए था।
Tey '

क्या मल्टी-विंडो-वन-सेशन का कोई वास्तविक लाभ है यदि आप जो कुछ भी करना चाहते हैं वह सस्ते में पृष्ठभूमि में चल रहा है?
लॉरेंससी

29

कई सत्रों को स्वचालित रूप से शुरू करने के लिए, एक .screenrcफ़ाइल सेट करें , स्क्रीन के लिए एक कॉन्फ़िगर फ़ाइल। इसमें, आप सत्र बना सकते हैं, कार्यक्रम शुरू कर सकते हैं, काम करने की अवधि बदल सकते हैं आदि। मैं इसका उपयोग अपने स्क्रीन सत्र को आरंभ करने के लिए करता हूं।

-स्क्रीन आर्क फ़ाइल के लिए सरल परीक्षा:

# don't display the copyright page
startup_message off

# increase scrollback buffer size
defscrollback 10000

# create windows
screen -t TODO vim TODO.txt
chdir src
screen -t coding vim main.c
screen -t run 

screenप्रत्येक ऊपर बताए गए आदेशों एक स्क्रीन सत्र पैदा करते हैं। -tसत्र का शीर्षक सेट करता है; शेष पंक्ति को चलाने के लिए कमांड और इसके पैरामीटर हैं।

इस प्रकार, पहली और दूसरी screenपंक्ति एक सत्र शुरू करती है और vimअंदर लॉन्च होती है। तीसरा सिर्फ एक सत्र शुरू करता है और आपको एक संकेत देता है। chdirबाद के सभी सत्रों के लिए कार्यशील निर्देशिका को बदलता है।

यदि आप एक से अधिक .screenrcफ़ाइलें रखना चाहते हैं , तो बस उन्हें अपने इच्छित तरीके से नाम दें, और एक का चयन करें screen -c myscreenrc


5

आप एक साथ d, m, S विकल्पों का उपयोग कर सकते हैं:

screen -Sdm s1
screen -Sdm s2
screen -Sdm s3

S: एक स्क्रीन बनाने के लिए

डी: एक स्क्रीन से अलग

m: स्क्रीन के निर्माण को लागू करने के लिए, भले ही स्क्रीन को दूसरी स्क्रीन के भीतर से बुलाया जाए या नहीं।


3
दिलचस्प है, कि आप इस तरह लिख सकते हैं, screen -dmS s1आदि के बजाय मुझे नहीं पता था कि, जब समूह विकल्प, एक तर्क के साथ एक अंतिम नहीं हो सकता है।
टॉमस गैंडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.