मैं एक कमांड, 4 विंडो के साथ एक GNU सत्र का उपयोग करके कैसे बना सकता हूं, प्रत्येक अलग-अलग कमांड चला रहा है?


0

मैं हर बार जब मैं बूट करता हूं तो स्क्रीन को पृष्ठभूमि में बनाने की कोशिश कर रहा हूं। मुझे कम से कम 4 विंडो रखने की आवश्यकता है, प्रत्येक अलग-अलग कमांड को स्वचालित रूप से चला रहा है। मैं उसे कैसे कर सकता हूँ?

जवाबों:


1

सबसे पहले, एक अलग स्क्रीन सत्र शुरू करें। फिर उसके नाम का उपयोग करके उस सत्र में कमांड भेजें। ध्यान दें कि यह पता लगाने का कोई अच्छा तरीका नहीं है कि क्या सत्र पहले से चल रहा है और / या इसके अंदर क्या चल रहा है; यह सुनिश्चित करना आपके ऊपर है कि जब आप पहले से चल रहे हों तो इस स्क्रिप्ट को रिलॉन्च करने की कोशिश न करें (ऐसा करने के कई तरीके हैं, लेकिन यह इस सवाल के दायरे से बाहर है)।

मैं आपकी कमांड लाइनों को स्क्रिप्ट में डालने की सलाह देता हूं, अन्यथा आपके पास स्तरों के उद्धरण के साथ एक समय का नरक होने की संभावना है। आपने मान लिया है कि, आपकी लॉन्चर स्क्रिप्ट कुछ इस तरह होगी:

#!/bin/bash

# An arbitrary name to uniquely identify this screen session:
SESSION="my_session_name_here"

# Create the detached session, running the first command in its first window:
screen -S "${SESSION}" -d -m script1.sh

# Now add the other windows. You create new windows within screen with
# "C-a:screen" (usually mapped to some other shortcut), so that's the command: 

screen -S "${SESSION}" -X screen script2.sh
screen -S "${SESSION}" -X screen script3.sh

# You could have given the windows different titles by adding "-t title1" etc.

आप किसी भी समय सत्र को संलग्न कर सकते हैं यह देखने के लिए कि यह क्या कर रहा है, जैसे कि आपने इसे अंतःक्रियात्मक रूप से लॉन्च किया है। हालाँकि, क्योंकि प्रत्येक विंडो में कमांड वह शेल नहीं है जिससे आपने संबंधित स्क्रिप्ट लॉन्च की है, जैसे ही आप स्क्रिप्ट से कंट्रोल-सी करेंगे, विंडो बंद हो जाएगी। यदि आप उससे बचना चाहते हैं, तो याद रखें कि स्क्रीन सत्र ऐसा व्यवहार कर रहा है मानो आप हाथ से उसके साथ बातचीत कर रहे थे, इसलिए आप कुछ करेंगे:

screen -S my_session -d -m
# "active" window is now 0 (the only one)
screen -S my_session -X exec script1.sh
screen -S my_session -X screen
# "active" window is now 1, running the shell
screen -S my_session -X exec script2.sh
# ... etc.

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


0

एक bashस्क्रिप्ट किसी भी प्रोग्राम को लॉन्च कर सकती है, चाहे कमांड-लाइन या जीयूआई। आपको बस एक आवेदन प्रति लाइन बनाना होगा। यदि आप उपयोग nohupकरते हैं, तो आप शेल से बाहर निकल सकते हैं, जब सभी एप्लिकेशन शुरू हो जाएंगे: -

#!/bin/bash
nohup Program1Path Program1Parameters&
nohup Program2Path Program2Parameters&
nohup Program3Path Program3Parameters&
nohup Program4Path Program4Parameters&
exit

एक बार जब आप इस स्क्रिप्ट को बना लेते हैं और इसे निष्पादन योग्य बना देते हैं, तो बस इसे जोड़ें Startup Applicationsऔर जब भी आप लॉग ऑन करेंगे, यह चलेगा।


समस्या यह है कि प्रत्येक कमांड ">>" का उपयोग करके एक अलग फ़ाइल में आउटपुट करता है। क्या यह अभी भी काम करेगा? इसके अलावा प्रति प्रोग्राम नहीं है, और अधिक आदेशों की श्रृंखला है जो बंद होने तक चलती हैं।
मारियोपील 98

पुनर्निर्देशन इसका असर नहीं करेगा। मैं इस बारे में स्पष्ट नहीं हूं कि आप कैसे चाहते हैं कि कार्यक्रम निर्धारित हों: क्या आपका मतलब कुछ ऐसा है { Prog1; Prog2; Prog3; Prog4; }&?
AFH

मैं जो कुछ हासिल करने की कोशिश कर रहा हूं उसका एक सरल उदाहरण मैं कहता हूं: ping google.com | इनपुट पढ़ते समय; गूंज "$ (तिथि): $ इनपुट"; किया अन्य आदेश हो सकता है: जबकि (सच); सेंसर करो | इनपुट पढ़ते समय; गूंज "$ (तिथि): $ इनपुट"; किया हुआ; नींद 1; किया;
मारियोपील 98

मुझे इस तरह के कुछ कमांड की जरूरत है लेकिन एक स्क्रीन सेशन में अलग-अलग विंडो में बूट पर ज्यादा जटिल शुरुआत होती है।
मारियोपील 98

आपके किसी भी कमांड स्ट्रिंग्स को ऊपर दिया जा सकता है, जैसे { ping google.com | while read input; do echo "$(date): $input"; done; }&। अंतिम कमांड स्ट्रिंग को अग्रभूमि में चलाया जा सकता है, बिना { ... }&। आपके उदाहरणों में कोई GUI प्रोग्राम शामिल नहीं है, इसलिए मैं नहीं देखता कि चार विंडो कहाँ आती हैं, जब तक कि आप एक अलग (अग्रभूमि) स्क्रिप्ट में प्रत्येक कमांड स्ट्रिंग नहीं चाहते हैं, सभी चार स्क्रिप्ट्स में अलग-अलग प्रविष्टियों के रूप में जोड़ा गया है Startup Applications
AFH
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.