बैश में पृष्ठभूमि के लिए चल रहे कार्यक्रम को स्थानांतरित करें


10

अगर मैं किसी प्रोग्राम को bash में चला रहा हूं, तो मैं इसे Ctrl+ दबाकर सस्पेंड कर सकता हूं Z। अगर मैं प्रोग्राम को छोड़ना चाहता हूं, तो मैं bgकमांड का उपयोग कर सकता हूं । टाइप करने के बिना प्रोग्राम को सीधे बैकग्राउंड में रखने का कोई तरीका है bg?

स्पष्टीकरण : मैं कार्यक्रम को पृष्ठभूमि में रखना चाहता हूं जब यह पहले से ही चल रहा है, इसे निलंबित किए बिना।


2
यह कोई डुप्लिकेट नहीं है। जब टर्मिनल विंडो बंद होती है, तो मैं एक प्रोग्राम चालू नहीं रखना चाहता, और मैं एक अलग कमांड टाइप नहीं कर सकता। मैं पृष्ठभूमि में एक प्रक्रिया डालना चाहता हूं जब यह पहले से ही चल रहा है।
कालल एल्मर

1
हाँ यह कोई डुप्लिकेट नहीं है, कृपया इसे फिर से खोलें।
साजी jiji

उन सभी लोगों के लिए धन्यवाद जिन्होंने इसे फिर से खोलने में मदद की .. @Kalle, अब सवाल फिर से खुल गया है।
साजी ji89

आपका बहुत बहुत धन्यवाद! जैसा कि वास्तव में प्रश्न के लिए एक उत्तर मिल रहा है, मुझे लगता है कि एकमात्र तरीका यह है कि पहले इसे निलंबित करें और फिर इसे पृष्ठभूमि दें।
कालल एल्मर

जवाबों:


4

मुझे नहीं लगता कि पृष्ठभूमि पर चलने वाले कार्यक्रम को स्थानांतरित करना संभव है (जबकि प्रक्रिया अभी भी चल रही है)।
हालाँकि GNU-Screen नामक एक एप्लिकेशन है , जिसके उपयोग से आप किसी भी टर्मिनल के भीतर कंसोल आधारित एप्लिकेशन - इंटरेक्टिव कमांड शेल, शाप-आधारित एप्लिकेशन, टेक्स्ट एडिटर आदि - की कोई भी संख्या चला सकते हैं।
यहाँ GNU- स्क्रीन पर एक अच्छा ट्यूटोरियल है
ध्यान दें कि यह वही नहीं करता है जो आपने पूछा था, लेकिन वैसे भी उद्देश्य पूरा करता है।
उदाहरण:
यहां जीएनयू-स्क्रीन का उपयोग करके आपसे जो पूछा गया है उसका कार्यान्वयन है।

  1. Run screen
    आपको सॉफ्टवेयर के बारे में विवरण मिल जाएगा। वापस लौटें।
  2. अब, आप अपना सामान्य टर्मिनल देखेंगे vlc। जब भी यह स्क्रीन की खिड़की होगी । किसी भी कमांड का कहना है । यह उस विंडो के भीतर प्रक्रिया शुरू कर देगा।
  3. अब एक नई विंडो टाइप खोलने के लिए Ctrl+ Aऔर फिर C। आप यहां एक नया कमांड चला सकते हैं। ध्यान दें कि जो प्रक्रिया आपने विंडो 1 में शुरू की थी, वह अभी भी चल रही है।
  4. स्क्रीन प्रेस से अलग करने के लिए Ctrl+ Aऔर फिर D। अब आप अपने पुराने टर्मिनेल पर वापस लौटें। जब भी आप स्क्रीन से शुरू करते हैं, तब भी कोई भी प्रक्रिया चल रही होगी।

4

ज्ञान की मेरी सबसे अच्छी करने के लिए आप इसे चलाते हैं और फिर एक संलग्न कर सकता है और इसके बाद इस तरह:myprogram &

हालाँकि मैं यहाँ बहुत गलत हो सकता हूँ।

[संपादित करें]: यदि आप ऊपर चलाते हैं, तो इसके लिए नज़दीकी नज़र उठाते हुए, टर्मिनल बंद करने पर अनुप्रयोग बंद हो जाएगा। यदि आप आवेदन को पृष्ठभूमि में चलाना चाहते हैं, तो, जहां तक ​​मुझे पता है, आवेदन को इस तरह से लिखना होगा जो डेमन व्यवहार का समर्थन करता है।

[संपादित 2]: nohup command & आप जो हासिल करना चाहते हैं, उसके करीब प्रतीत होता है। Nohup किसी एप्लिकेशन को चलाने की अनुमति देगा, और दोनों इसके इनपुट को अनदेखा करेंगे और इसके आउटपुट को nohup.outवर्तमान निर्देशिका में फ़ाइल में रीडायरेक्ट करेंगे ।


अगर मैं टर्मिनल विंडो बंद करता हूं तो मुझे वास्तव में परवाह नहीं है। मैं जो कुछ खोज रहा हूं, वह bash में एक कीबोर्ड शॉर्टकट है जो Ctrl + Z की तरह काम करता है, लेकिन इसे सस्पेंड करने के बजाए बैकग्राउंड में प्रोसेस को चालू रखेगा।
कालल एल्मर

0

यह एक वास्तविक जवाब नहीं हो सकता है। मुझे आश्चर्य है कि MSYS के साथ उबंटू के बीच बैश का क्या अलग है।

मैं MSYS चला रहा हूं और जब मैं दौड़ता हूं Application/Chrome &, तो यह तुरंत बैकग्राउंड प्रोसेस में चला जाता है। मैं अगले पल शुरू पलक के रूप में MSYS बैश का उपयोग कर सकते हैं।

और क्या यह प्रश्न समान इरादों के साथ पृष्ठभूमि पर चलने वाले कार्यक्रम हैं ?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.