2009-02-12 7 views
23

docs for the Unix "screen" command के अनुसार, आप इसे डिफ़ॉल्ट स्क्रीन के समूह से शुरू करने के लिए .screenrc में कॉन्फ़िगर कर सकते हैं, प्रत्येक आपके द्वारा निर्दिष्ट एक आदेश चला रहा है।आप कमांड के साथ यूनिक्स स्क्रीन कमांड कैसे शुरू करते हैं?

# Default screens 
screen -t "shell_0" 1 
screen -t "autotest" 2 cd ~/project/contactdb ; autotest 

यह Autotest आदेश नहीं चलेंगे:

यहाँ मेरी cofig है। वह विंडो जहां मैं autotest चलाने की कोशिश कर रहा हूं, जब मैं screen शुरू करता हूं तो तुरंत बंद हो जाता है।

मैं भी बस के साथ यह कोशिश की ...

screen -t "autotest" 2 cd ~/project/contactdb 

एक ही परिणाम।

मैं भी कोशिश की ...

screen -t "autotest" 2 ls 

ही वहाँ भी परिणाम।

स्टार्टअप पर किसी दिए गए स्क्रीन में कमांड चलाने के लिए इसे प्राप्त करने का क्या रहस्य है?

उत्तर

21

आपका प्रोग्राम चलाया जा रहा है (ठीक है, सीडी को छोड़कर), यह सिर्फ यह है कि इसे बिना किसी पैर के खोल के चलाया जा रहा है, जैसे ही यह पूरा हो जाता है, यह निकलता है और आप कर चुके हैं।

आप कर सकता है:

screen -t "autotest" 2 bash -c 'cd ~/project/contactdb ; autotest' 

दो गोले Spawns, लेकिन जीवन शायद पर जाना होगा।

6

इससे मदद मिल सकती है लेकिन जो भी आप चाहते हैं वह पूरी तरह से नहीं हो सकती है।

अपने .screenrc की पहली पंक्ति के रूप में "ज़ोंबी एज़" या "defzombie az" रखो। "एजी" जो भी 2 चाबियाँ आप चाहें हो सकते हैं। अब, जब एक स्क्रीन को बंद करना चाहिए (उदाहरण के लिए कमांड निष्पादित करना समाप्त हो गया है), यह वास्तव में बंद नहीं होगा; 'ए' को मारना इसे बंद कर देगा, 'z' को मारने से उस स्क्रीन से जुड़े कमांड को फिर से निष्पादित किया जाएगा।

मैंने पाया कि the screen user's manual पर।

4

यहां मेरा दिखता है। यह काम तो ठीक करता है। मुझे लगता है कि या तो ब्रांड्स में समस्या हो सकती है या स्क्रीन "ऑटोटेस्ट" मौजूद नहीं है, तो स्क्रीन विंडो नहीं खुलती है।

screen -t zsh 1 
screen -t emacs 2 emacs -nw 
screen -t mutt 3 mutt 
monitor on 
screen -t mc 4 mc -s 
screen -t elinks 4 elinks 
5

आप स्क्रीन में भी "सामान" पात्रों के रूप में यदि आप उन्हें लिखा हो सकता है।फिर बाद में

$ screen -S 'tailf messages' -d -m tailf /var/log/messages 

आप कर सकते हैं:


screen -t "shell_0" 1 

# create the following screen in the desired dir, instead of cd-ing afterwards :) 
chdir ~/project/contactdb 
screen -t "autotest" 2 

# (without this sometimes screens fail to start correctly for me) 
sleep 5 

# paste some text into screen number 2: 
select 2 
stuff "autotest\012" 
15

इस प्रयास करें:

यहाँ कैसे आप अपने उदाहरण के साथ कि क्या कर सकते हैं

:

$ screen -ls 
1234.tailf messages 

इसके उपरांत

$screen -r 1234 
0

यहां मैं यह कैसे करूंगा।

screen -t shell_0 
chdir ~/project/contactdb 
screen -t autotest autotest 

उपर्युक्त स्क्रीन द्वारा प्रक्रियात्मक रूप से मूल्यांकन किया जाता प्रतीत होता है। सबसे पहले हम shell_0 शीर्षक के साथ एक नई स्क्रीन स्थापित करते हैं। चूंकि हमने कोई अन्य विकल्प नहीं दिया है, इसलिए वर्तमान कार्य निर्देशिका माता-पिता के खोल या उपयोगकर्ता की होम निर्देशिका का होगा। फिर हमने नई स्क्रीन के लिए ~/project/contactdb पर डिफ़ॉल्ट निर्देशिका सेट की है। इसके बाद, हम autotest कमांड चलाने वाली एक नई स्क्रीन स्थापित करते हैं।

विंडो संख्या (n) वैकल्पिक है, मैं आमतौर पर इसे छोड़ देता हूं।

संबंधित मुद्दे