मैं फ़ाइल बनाने से nohup को कैसे रोक सकता हूं ~ / nohup.out?


16

मैं $ nohup ...पृष्ठभूमि में एप्लिकेशन शुरू करने के लिए कमांड का उपयोग करता हूं ताकि बाद में टर्मिनल विंडो को बंद कर सकूं।

निष्पादन पर यह फ़ाइल बनाता है ~/nohup.out

उदाहरण:

orschiro@x230:~$ nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py"
nohup: ignoring input and appending output to 'nohup.out'

मैं nohupबनाने से कैसे रोक सकता हूंnohup.out ?


2
आप भी विचार कर सकते हैं byobu। :)
एंड्रिया लेज़ारोत्तो

धन्यवाद, @AndreaLazzarotto! क्या आप मुझे एक उदाहरण दे सकते हैं कि इसका उपयोग कैसे करें?
ऑर्किरो

2
खैर, मेरा सुझाव है कि आप यहाँ वीडियो पर एक नज़र डालें: byobu.co मूल रूप से, जो आप करना चाहते हैं उसके लिए आप बस चलाएं byobu, जो भी आप चाहते हैं उसे शुरू करें, फिर दबाएं F6और आप कर रहे हैं। आप इसे byobuफिर से चलाकर प्राप्त कर सकते हैं ।
एंड्रिया लज्जाज़ारो

अति उत्कृष्ट! आप इसे आधिकारिक उत्तर के रूप में जोड़ना चाह सकते हैं?
ऑर्किरो 5

तकनीकी रूप से, मेरा सुझाव आपके प्रश्न का उत्तर नहीं देता है, यह केवल एक विकल्प है। : डी
एंड्रिया लाज़रोज़ेटो

जवाबों:


20

उदाहरण के लिए, आप कहीं भी आउटपुट को पुनर्निर्देशित कर सकते हैं:

nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1

पुनर्निर्देशन डिफ़ॉल्ट आउटपुट फ़ाइल nohup.outको बनने से रोकता है । /dev/nullविस्मरण है, इसलिए यदि आप डेटा बिल्कुल नहीं चाहते हैं, तो इसे वहां भेजें।

बैश में आप संक्षिप्त कर सकते हैं >/dev/null 2>&1करने के लिए&>/dev/null

उदाहरण के लिए मैं अक्सर उपयोग किए जाने वाले कार्यक्रमों के लिए एक उपनाम बनाता हूं (और इसे अपने लिए जोड़ देता हूं .bashrc)

alias show_state='nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1'

अब मुझे केवल टाइप करना है show_state


2
@ डोर्सचीरो: कुछ वर्षों के बाद यह गूढ़ नहीं होगा और आप इसे याद रखेंगे;) मैं इसके साथ चिपके रहने का सुझाव देता हूं, क्योंकि इसे दूर करने का अर्थ है कि आप उस अनुभव को प्राप्त नहीं कर पाएंगे, और यह जानकर कि कैसे BASH पुनर्निर्देशन ऑपरेटर शीर्ष पर काम करते हैं। आपके सिर में एक महत्वपूर्ण कौशल है।
मोनिका

यह एक समारोह के रूप में बेहतर नहीं होगा? कुछ पसंद है show_state () { /bin/bash -c "$@" &>/dev/null }? (चेतावनी: खराब वाक्य रचना और शायद काम नहीं करेगा! यह सिर्फ एक उदाहरण है!)। एक निपिक: क्यों show_stateजब आप का उत्पादन दूर फेंक रहे हैं nohup?
इस्माईल मिगुएल

मुझे नहीं पता कि स्क्रिप्ट @IsmaelMiguel क्या करती है, लेकिन मेरा मानना ​​है कि यह एक ट्रे आइकन के साथ एक संकेतक है, न कि "स्टेट" (जो भी हो) प्रिंट करने के लिए। यकीन है, एक समारोह एक उपनाम की तुलना में अधिक मजेदार हो सकता है। ^
ज़ना

ओहह मैं समझ गया! क्षमा करें, .pyफ़ाइल का नाम नहीं देखा । और हां, एक फंक्शन ज्यादा मजेदार है। मेरे पास एक डेबियन डेस्कटॉप पर यह बुरी तरह से लिखित फ़ंक्शन है shutup() { source "$@" >/dev/null 2>&1 & }:। और यह काम करता है। शायद आप कुछ इसी तरह का सुझाव दे सकते हैं, लेकिन बहुत बेहतर है?
इस्माइल मिगुएल

मुझे नहीं पता था &> काम किया है (और मेरे दिमाग में यह बैकग्राउंड प्लस स्टडआउट पुनर्निर्देशन जैसा दिखता है)। मैंने हमेशा इसे सीखा है >&। क्या यह मानक है?
रैंडम 832
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.