मैं स्क्रीन सेशन के अंदर लेकिन एक स्क्रिप्ट से कुछ एप्लिकेशन लॉन्च करना चाहता हूं।
स्क्रिप्ट के बिना मैं सिर्फ स्क्रीन लॉन्च करूंगा, फिर क्रॉटल-एसी के साथ एन विंडो खोलें और प्रत्येक विंडो में प्रोग्राम निष्पादित करें।
मैंने निम्नलिखित कोशिश की
screen -d -m -S test
screen -S test -X exec tail -f /var/log/messages
screen -S test -X screen
screen -S test -X exec tail -f /var/log/xinetd.log
लेकिन जब मैं सत्र संलग्न करता हूं तो पूंछ नहीं चल रही है। अगर मैं सत्र को सिर्फ एक और टर्मिनल से screen -d -m -S startup
चलाता हूं तो screen -S startup -X exec tail -f /var/log/messages
यह काम करता है।
क्या मैं कुछ भुल गया ?
एलेक्सडी जवाब के बाद संपादित करें :
एक आधा काम कर समाधान है
screen -d -m -S test tail -f /var/log/messages
screen -S test -X screen tail -f /var/log/xinetd.log
स्क्रीनिंग कमांड (एक के बाद -X) कमांड के साथ काम कर रहा है, जबकि निष्पादन संभवत: इसलिए नहीं है क्योंकि निष्पादन एक चालू विंडो को परिभाषित करने की उम्मीद करता है, जबकि स्क्रीन अलग होने पर कोई चालू नहीं होता है। इस टिप्स के लिए एलेक्सडी को धन्यवाद ।
लेकिन एक अजीब दुष्प्रभाव है: जब प्रोग्राम बंद हो जाता है (यदि आप स्क्रीन सत्र संलग्न करते हैं और crtl-c पूंछ, या पूंछ को मारते हैं) तो स्क्रीन विंडो बंद हो जाएगी।
तो व्यवहार Crtl-A c के समान नहीं है और कमांड चलाएं
दूसरा साइड इफेक्ट यह है कि आप 2 कमांड को चेन नहीं कर सकते
screen
हमेशा समाप्त होता है जब कमांड जिसके साथ लॉन्च किया गया था, वह समाप्त होता है - यह उपकरण की एक सामान्य विशेषता है :) ..तो अगर आप दौड़ते हैंscreen top
, तो जब आप छोड़ देंगेtop
, तो छोड़screen
देंगे, भी