टर्मिनल के माध्यम से गुई अनुप्रयोगों को नरम कैसे करें?


22

क्या जीयूआई एप्लिकेशन को मैत्रीपूर्ण " कृपया अपने आप को अब छोड़ दें " तरीके से बंद करने का एक तरीका है, बिना एप्लीकेशन विंडो के ग्राफिकल एक्सेस के?

उदाहरण के लिए, यदि Gnome / X डिस्प्ले काले रंग की हो जाती है, तो मैं tty2 पर स्विच करना चाहता हूं और फ़ायरफ़ॉक्स जैसे एप्लिकेशन को एक तरह से बंद कर सकता हूं, जिससे उन्हें अपने यूज़रनेम को बचाने में मदद मिलेगी आदि।

जवाबों:


19

आमतौर पर, आप किसी एप्लिकेशन को (ग्राफ़िकल इंटरफ़ेस के साथ या बिना) बंद करने के लिए SIGHUP का उपयोग कर सकते हैं।

kill -HUP <application_pid>

संपादित करें : कुछ अन्य जानकारी जोड़ी

जिस तरह से Sightup को संभाला जाता है, वह अनुप्रयोग पर निर्भर होता है, जैसा कि डेव ने नोट किया है, ऐसा हो सकता है कि यह संकेत नकाब या संभाला हो। हालाँकि काफी सारे इंटरएक्टिव एप्लिकेशन एक SIGHUP के साथ इनायत से बाहर निकलते हैं।

दूसरी तरफ, मुझे यह स्वीकार करना होगा कि आमतौर पर मैं इस स्कीमा का पालन करता हूं:

kill -HUP <application_pid>
# check if application is still running
kill -INT <application_pid>
# check if application is still running
kill -KILL <application_pid>

जाहिर है कि अंतिम आदेश इतना "अनुकूल" नहीं है।


3
यदि आपको उस एप्लिकेशन की पीआईडी ​​नहीं पता है जिसका उपयोग आप pkillनिष्पादन योग्य का नाम निर्दिष्ट करने के लिए कर सकते हैं । उदाहरण के लिए:pkill -HUP firefox-bin
कालेब

@ भी: दिलचस्प है, मैंने इसे संबंधित पाया जो एक समान लेकिन उल्टे क्रम का सुझाव देता है: TERM-> INT-> HUP (पुराने जमाने का दिमाग)। शायद मैं HUP-> INT-> को ध्यान में रखूंगा, क्योंकि KILL मेरे लिए अनुकूल नहीं लगता है। सभी को धन्यवाद।
jfk

@ कालेब, बस वहाँ सावधान रहें जहाँ एक ही नाम के साथ कई प्रक्रियाएँ हैं: pkillउन सभी को मार देगा। उदाहरण के लिए, यह कुछ पृष्ठभूमि प्रक्रियाओं बनाने के लिए कई बार चलाएँ: sed "s/Woo/woo/" < /dev/urandom >> /dev/null &। फिर करते हैं pkill -HUP sed। आपके द्वारा शुरू की गई सेड के सभी उदाहरणों को मार देंगे और साथ ही उपयोगी कार्य करने वाले किसी भी अन्य उदाहरणों को भी।
आहॉक्स

@ कैलेब ओवरओवर, pkillकुछ ऐप्स को भी मार देगा जिनकी आपको उम्मीद नहीं है: जैसे यदि आपके पास chromiumचल रहा है, और नामक प्रोग्राम को मारना चाहते हैं rom, pkillतो खुशी से chromiumनीचे गोली मार देंगे । बेहतर उपयोग killall, जो केवल सटीक नाम से मेल खाएगा (हालांकि सोलारिस पर नहीं, जहां यह सचमुच सभी प्रक्रियाओं को मारता है )।
रुस्लान

@Ruslan या pkill -xएक आंशिक मैच के बजाय एक सटीक मैच प्राप्त करने के लिए उपयोग करें। मैं व्यक्तिगत रूप से टाइपिंग को बचाने के लिए आंशिक मिलान का लाभ उठाता हूं, लेकिन आपको यह जानना होगा कि उपकरण क्या करता है। हां, डिफ़ॉल्ट रूप से यह आंशिक तारों से मेल खाता है। एक और उपयोगी विकल्प है -fकि बस के बजाय पूर्ण कमांड लाइन के खिलाफ मैच करें $0
कालेब

5

आप कोशिश कर सकते हैं:

kill -TERM <pid>

या

kill -TERM `pidof <application_name>`

कम से कम कुछ प्रणालियों पर, जब सिस्टम शटडाउन से गुजर रहा होता है, तो सभी प्रक्रियाओं को KILL (9) सिग्नल भेजने से पहले TERM (15) सिग्नल भेज दिया जाता है। HUP अक्सर एप्लिकेशन को उसके कॉन्फ़िगरेशन को फिर से लोड करने का कारण बनता है, लेकिन यह प्रक्रिया-दर-प्रक्रिया के आधार पर भिन्न हो सकता है।


2

इसके कॉन्फ़िगरेशन से बाहर निकलने और सहेजने के लिए एप्लिकेशन को बताने का कोई सामान्य तरीका नहीं है। dcop kfoo MainApplication-Interface quitकुछ केडीई 3 अनुप्रयोगों के लिए किसी विशेष ढांचे का उपयोग करके अनुप्रयोगों को सूचित करने के तरीके हो सकते हैं । ध्यान रखें कि एप्लिकेशन आपको एक डायलॉग बॉक्स दिखा सकता है जो आपसे पुष्टि के लिए पूछ रहा है।

यदि X प्रदर्शन अनुपयोगी हो जाता है, तो X सर्वर को मारें। प्रेस Ctrl+ Alt+ BackSpace; अगर वह काम नहीं करता है, तो X सर्वर प्रक्रिया को मार दें sudo pkill -x Xorg। जब एक्स सर्वर की मृत्यु हो जाती है, तो सभी एक्स अनुप्रयोगों को अधिसूचित किया जाता है और वे इनायत से बाहर निकलने की कोशिश करेंगे (कोई गारंटी नहीं है कि वे सब कुछ बचा लेंगे, लेकिन यह आपका सबसे अच्छा दांव है)।


मुझे नहीं पता था कि ऐप्स को सूचित किया जाएगा या सिर्फ मार दिया जाएगा; और जैसा कि प्रमुख कॉम्बो डिफ़ॉल्ट रूप से फेडोरा पर सक्षम नहीं है ..... अब मुझे पता है कि इसे कमांड लाइन द्वारा कैसे मारना है!
jfk

1

Akin to @ andcoz का जवाब, अगर आपको एप्लिकेशन का PID नहीं पता है (मैं मान रहा हूं कि आप इसे दिल से नहीं जानते हैं), तो यह कोशिश करें:

kill -HUP `pidof [application_name]`

2
उस एक कदम को पूरा करें और कोशिश करें pkill -HUP [application_name]:)
कालेब

बस सीखा pkill और pgrep: D
jfk

1

दो अन्य आदेश जिन पर आप विचार करना चाहते हैं wmctrl -cऔर कर सकते हैं xdotool windowkill। मुझे यकीन नहीं है कि windowkillक्या आप वास्तव में वही हो सकते हैं, यदि आप windowdeleteपैच में दिलचस्पी नहीं ले सकते ।

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