अग्रभूमि से एक आवेदन को पृष्ठभूमि पर भेजना टर्मिनल और शेल दोनों से सहयोग की आवश्यकता है। टर्मिनल इसे अकेले नहीं कर सकता, क्योंकि शेल को अग्रभूमि प्रक्रिया समूह सेट करना होगा। शेल इसे अकेले नहीं कर सकता है, क्योंकि टर्मिनल को कुंजी प्रेस को संसाधित करना होगा (शेल अग्रभूमि में नहीं है, इसलिए यह कुंजी प्रेस प्राप्त नहीं कर सकता है)।
एक करीबी सन्निकटन पृष्ठभूमि को एप्लिकेशन को वास्तव में तेजी से भेजने के लिए है। सब के बाद, एक आवेदन दूसरों के साथ सीपीयू समय साझा करता है और एक सेकंड के कुछ सौवें हिस्से पर विराम नहीं होना चाहिए। (यह वास्तविक समय के अनुप्रयोगों के लिए करता है, इसलिए पृष्ठभूमि में उन लोगों को शुरू करना सुनिश्चित करें।) मैं Ctrl+ के लिए एक शेल बाइंडिंग का उपयोग करता हूं Zजो अंतिम-अग्रभूमि वाली नौकरी को पृष्ठभूमि में भेजता है। इस तरह से, दबाने Ctrl+ Z Ctrl+ Zकम से कम निलंबन समय के साथ पृष्ठभूमि के लिए एक नौकरी भेजता है।
यहाँ मेरी ज़िश बाइंडिंग है, जो कमांड लाइन खाली न होने पर भी “आधा” टाइप कर देता है ।
fancy-ctrl-z () {
emulate -LR zsh
if [[ $#BUFFER -eq 0 ]]; then
bg
zle redisplay
else
zle push-input
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z
दर्शकों में गैर-ज़श-उपयोगकर्ताओं के लिए अंग्रेजी में:
यदि आप केवल यह चाहते हैं कि कमांड लाइन खाली है, तो बैकग्राउंडिंग व्यवहार:
function bg_ { builtin bg "$@"; }
zle -N bg_
bindkey '^Z' bg_
मुझे नहीं पता कि क्या आप बैश में भी ऐसा कर सकते हैं। यह आसान के रूप में के रूप में होना चाहिए bind -x '"\C-z": bg'
जगह में tty रोक चरित्र, तो यह हो जाता है कभी नहीं, सिवाय इसके कि पार्टी पत्ते Ctrl+ Zइनपुट के रूप में।