linux - लॉगिन पर ध्वनि चलाएं?


0

मैंने एक GUI के बिना Gentoo स्थापित किया है और aplay /usr/shar/sounds/startup3.wav &> /dev/null &मेरे / etc / bash / bashrc फ़ाइल में जोड़ा है। यह साउंड फाइल चलाने में ठीक काम करता है, लेकिन एक बार साउंड खत्म होने पर और मैं एंट्री मारता हूं, यह बताता है कि प्रक्रिया समाप्त हो गई है। जब मैं अग्रभूमि में साउंड प्ले करता हूं, तो मेरे टर्मिनल में कुछ भी करने की क्षमता नहीं होती है जब तक कि साउंड प्ले नहीं किया जाता है।

क्या कोई ऐसा तरीका है जिससे मैं लॉग इन करने के बाद बिना किसी आउटपुट या व्यवधान के ध्वनि बजा सकता हूं?

जवाबों:


0

यह "पूर्ण" संदेश है क्योंकि शेल में अभी भी अपने कार्य नियंत्रण के तहत कमान है:

$ sleep 10 &
[1] 660
$ jobs
[1]+  Running                 sleep 10 &

 (time passes)

$ 
[1]+  Done                    sleep 10

आप (ए) के साथ नौकरी से नियंत्रण हटा सकते हैंdisown

$ sleep 100 &
[1] 3804
$ jobs
[1]+  Running                 sleep 100 &
$ disown
$ jobs
$

मुझे इसकी शुरुआत (b) के साथ किसी काम को सही तरीके से करने का तरीका नहीं पता है , इसलिए मैं प्रस्ताव करता हूं कि आप disownध्वनि कमांड के ठीक बाद अपने bashrc में डाल दें । हालाँकि, यह सभी नौकरियों को समाप्त कर देगा - मुझे नहीं पता कि क्या यह चाहता है। अन्यथा आप उपयोग कर सकते हैं disown %aplay


(ए) man bash

disown [-ar] [-h] [jobspec ...] विकल्पों के बिना, प्रत्येक जॉबस्पेक को सक्रिय नौकरियों की तालिका से हटा दिया जाता है। यदि जॉबस्पेक मौजूद नहीं है, और न तो -ए और न ही-आर की आपूर्ति की जाती है, तो वर्तमान नौकरी की शेल की धारणा का उपयोग किया जाता है। यदि -एच विकल्प दिया जाता है, तो प्रत्येक जॉबस्पेक को टेबल से नहीं हटाया जाता है, लेकिन इसे चिह्नित किया जाता है, ताकि शेल को राइट्स प्राप्त होने पर साइट पर काम न भेजा जाए। यदि कोई जॉबस्पेक मौजूद नहीं है, और न तो -a और -r विकल्प की आपूर्ति की जाती है, तो वर्तमान नौकरी का उपयोग किया जाता है। यदि कोई जॉबस्पेक की आपूर्ति नहीं की जाती है, तो -a विकल्प का अर्थ है सभी नौकरियों को निकालना या चिह्नित करना; नौकरी के तर्क के बिना -r विकल्प रनिंग जॉब्स के संचालन को प्रतिबंधित करता है। रिटर्न वैल्यू 0 है जब तक कि जॉबस्पेक एक वैध नौकरी निर्दिष्ट नहीं करता है।

(b) हालाँकि, Z शेल में zshयह आसान है:

zsh$ sleep 10 &!
zsh$ jobs
zsh$

2
बैश में, (sleep 10 &)अक्सर इस्तेमाल किया जाने वाला वर्कअराउंड है। setsid sleep 10आवश्यकताओं के आधार पर एक और है (यह इस से अलग &है कि यह भी नियंत्रित ट्टी से अलग हो जाता है)।
ग्रिटिटी

आपके विस्तृत उत्तर के लिए धन्यवाद। मैं (command &)ऊपर टिप्पणी से कर रहा था , लेकिन &!अवज्ञा के बारे में जानने के लिए अच्छा है, साथ ही साथ zsh में भी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.