मैं बैकग्राउंड में "apt-get install" कैसे चला सकता हूं?


17

जब मैं एक पैकेज स्थापित करने की कोशिश करता हूं , उदाहरण के लिए nsnake , कमांड के साथ sudo apt-get install nsnake &, प्रक्रिया तुरंत बंद हो जाती है। मैं इसे अग्रभूमि में ला सकता हूं और अपना sudo पासवर्ड दर्ज कर सकता हूं, इसे रोक सकता हूं ( Ctrl- Z) के साथ , और इसे फिर से पृष्ठभूमि पर भेज सकता हूं । लेकिन फिर शेल तुरंत प्रक्रिया को रोक देगा, जैसे,

katriel@caseylaptop:~$ bg     
[2]+ sudo apt-get install nsnake &   
[2]+  Stopped                 sudo apt-get install nsnake

क्या पृष्ठभूमि में पैकेज स्थापित करना संभव है? मैं जिस कंप्यूटर पर SSH'ing कर रहा हूं, उस पर बड़े पैकेज स्थापित करते समय मैं ऐसा करना चाहता हूं।

जवाबों:


30

हाँ यकीनन।

इसके चारों ओर फैंसी चीजों के साथ अपनी apt-getकमांड करें

sudo bash -c 'apt-get -y install guake >/dev/null 2>&1 & disown'

आंशिक विवरण:

  • sudo bash -cभाग spawns एक नई bashप्रक्रिया है, और रन apt-get -y install guake >/dev/null 2>&1 & disownहै कि नए खोल के अंदर।

  • ये आदेश तब नए उप-समूह के अंदर चलाए जाते हैं:

    • apt-get -y install guake: मुख्य एप्टीटयूट कमांड जिसे आप चलाना चाहते हैं।

      • >/dev/null 2>&1 पाइप stdout और stderr को / dev / null।
    • & disown पूर्ववर्ती कार्य को भंग कर देता है और उपधारा को निकाल देता है।

"हाँ |" जरूरत है जब आप -y स्विच का उपयोग करते हैं?
user31389

@ user31389: सख्ती से नहीं, लेकिन यह मदद कर सकता है अगर एक पैकेज में स्थापना के दौरान आगे संकेत मिलता है।
किरी

यह समझने के लिए वास्तव में अच्छा होगा कि यह क्यों काम करता है (और यह क्यों आवश्यक है)।
21

@katriel: यह समझाने में आसान नहीं है। मैंने अपने उत्तर में स्पष्टीकरण देने का प्रयास किया है, हालांकि।
किरी

1
@katriel: ऐसा इसलिए है क्योंकि Ctrl + Z कमांड को रोक देता है, जिसका अर्थ है कि इसे रोका गया है (अस्थायी रूप से रोका गया)।
किरी

17

मैं हमेशा पृष्ठभूमि में प्रोग्राम चलाने के लिए स्क्रीन का उपयोग करना पसंद करता हूं ।


2
स्क्रीन के लिए +1। जब आप जल्दी से बार
Pichan

4
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
ब्लेड 19899

1
मैं स्क्रीन के लिए tmux पसंद करते हैं।
माइकल

9

एम्परसेंड जोड़ें &किसी भी प्रोग्राम को चलाने के और प्रॉम्प्ट पर लौटें, जबकि प्रोग्राम चलता है, जैसे

sudo apt-get -y install nsnake &

हालाँकि, आपको शेल में समय-समय पर कुछ ईवेंट और सूचनाएं प्राप्त हो सकती हैं। इन घटनाओं को छिपाने के लिए, उन्हें STDOUT पर पाइप करें

sudo apt-get -y install nsnake >/dev/null &

1
घटनाओं की समस्या थी। समाधान के लिए उन्हें STDOUT पाइप करने लगता है।
कात्रिलेल

-1

यह एक वर्कअराउंड है, लेकिन पहले sudo के साथ कुछ भी चलाएं, जैसे sudo ls। कुछ समय के लिए आपका सुडोल प्राधिकरण याद किया जाएगा। तब आप बस चला सकते हैं sudo apt-get -y install nsnake &और आपसे दूसरी बार पासवर्ड नहीं मांगा जाएगा (जब तक कि कुछ समय बीत गया हो और प्राधिकरण समाप्त हो गया हो)।


आपको अभी भी प्रॉम्प्ट पर y टाइप करने की आवश्यकता है, जो आपका कमेंट आपको नहीं करने देगा।
किरी

@ minerz029 ओह, ठीक है। फिक्स्ड।
user31389

मुझे पूरा यकीन है कि सूडो प्राधिकरण और न ही "Y / n" प्रॉम्प्ट जो कि हस्तक्षेप कर रहा है, क्योंकि मुझे या तो काम नहीं करना है अगर मैं नौकरी को अग्रभूमि में लाता हूं।
21
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.