ठीक से बाहर निकलने के साथ ही टर्मिनल से आवेदन कैसे बंद करें


9

आमतौर पर ग्राफिकल वातावरण में अनुप्रयोग चलाते समय, जब मैं इसे बंद करना चाहता हूं तो मैं Xखिड़की के ऊपरी बाएं कोने में क्लिक करता हूं या अंदर जाता हूं File > Close

मैं कभी-कभी इन कार्यक्रमों को कमांड लाइन का उपयोग करके टर्मिनल से दूर एसएचएस पर बंद करना चाहूंगा, अब मैं killकमांड का उपयोग करता हूं, लेकिन मुझे आश्चर्य है कि यह आवेदन को खुद से ठीक से बाहर निकालने के समान है।

से man killडिफ़ॉल्ट संकेत 15) SIGTERM प्रतीत होता है, इस संकेत सामान को बचाने, आवेदन, करीब खुली फ़ाइलों मैं साफ करने के लिए बंद करने के लिए कोशिश कर रहा हूँ बताने के लिए जा रहा है?

अगर मैं इसे टर्मिनल से करना चाहता हूं तो क्या कोई बेहतर तरीका है?


2
पूछने के लिए धन्यवाद! मैंने कुछ सीखा जो निश्चित रूप से कुछ बिंदु पर काम आएगा।
ओलिपहंट -

जवाबों:


9

कृपापूर्वक एप्लिकेशन को बंद करने का विशिष्ट तरीका यह है कि विंडो का पीआईडी kill -TERM 1234कहां 1234है। हालाँकि, समस्या यह है कि ग्राफ़िकल एप्लिकेशन को एक्स सर्वर से एक विशिष्ट सिग्नल को सुनने के लिए डिज़ाइन किया गया है, TERMसिग्नल के लिए नहीं ।

इसका मतलब है कि आपको संचार करने के लिए आपके और एक्स सर्वर के बीच किसी तरह के एजेंट की आवश्यकता होगी ताकि आप उपयुक्त सिग्नल भेज सकें। आप निश्चित रूप से एक सी कार्यक्रम लिख सकते हैं, हालांकि वहाँ क्षेत्र में wmctrlकार्यक्रम मौजूद है (सी में आश्चर्यजनक रूप से नहीं लिखा गया है) जो वास्तव में ऐसा करता है।

उपयोग wmctrlसरल है:

wmctrl -c :SELECT: # close window that will be selected with pointer
wmctrl -c :ACTIVE: # close currently active window
wmctrl -ic <numeric id> # close window with specific id in hex

यह डिफ़ॉल्ट रूप से स्थापित नहीं है, इसलिए इसे प्राप्त करें sudo apt-get install wmctrl

ऐसे कई उपयोग हैं wmctrlजो अभी तक केवल खिड़कियों को बंद करने से परे हैं, इसलिए कृपया मेरे उत्तर और जैकब Vlijm के स्क्रिप्ट के उदाहरणों के लिए अधिक देखें।


2
बस यहां जोड़ते हुए कि wmctrl -lसभी विंडो को सूचीबद्ध करेगा और पहले कॉलम में हेक्स में संख्यात्मक आईडी देगा। =)
टेरेंस

धन्यवाद, अधिकांश अनुप्रयोगों के साथ बहुत अच्छा काम करता है, लेकिन डेल्यूज़ के साथ एक विकल्प है Minimize to tray on closeऔर wmctrl -cबस एक विंडो बंद कर देगा, न कि आवेदन ही, यह ट्रे के लिए कम से कम चलता रहेगा।
माइक

3

मुझे लगता है कि यह wmctrl -xlइस तरह से परिणाम देगा कि जोड़ने के लायक है :

0x03000001 -1 google-chrome.google-chrome  dcentore-pc Rybak - Google Play Music - Google Chrome
0x04600006  0 speedcrunch.Speedcrunch  dcentore-pc SpeedCrunch

जहां xविंडो क्लास आउटपुट में होने का अनुरोध करता है । हर बार एक ही कार्यक्रम को बंद करने का यह सबसे आसान तरीका है। फिर, हम इसे बंद करते समय बस विंडो क्लास की आपूर्ति कर सकते हैं:

wmctrl -xc speedcrunch.Speedcrunch

यह उदाहरण स्पीडक्रंच को बंद कर देगा।

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