क्या google-chrome
टर्मिनल से, उपयोग करने के अलावा, छोड़ने का कारण है killall google-chrome
?
मैं इसे मार डाले बिना स्क्रिप्ट से इसे बंद करने में सक्षम होना चाहूंगा।
क्या google-chrome
टर्मिनल से, उपयोग करने के अलावा, छोड़ने का कारण है killall google-chrome
?
मैं इसे मार डाले बिना स्क्रिप्ट से इसे बंद करने में सक्षम होना चाहूंगा।
जवाबों:
शायद wmctrl
कुछ सहायता हो सकती है। आप -c
विकल्प का उपयोग कर सकते हैं जो एक खिड़की को इनायत से बंद करता है:
wmctrl -c chrome
स्ट्रिंग chrome
को खिड़की के शीर्षक के खिलाफ मिलान किया जाता है। ध्यान दें कि कुछ संदेश पॉप-अप (जैसे जब आपके पास कई टैब खुले हों) विंडो बंद नहीं हो सकती है।
wmctrl
।
pkill -o chrome
हालांकि करता है।
यह कमांड सभी विंडो मैनेजरों में क्रोम प्रोसेस ट्री को इनायत से बाहर निकालता है:
pkill --oldest chrome
या यदि आप पसंद करते हैं:
/usr/bin/pkill --oldest --signal TERM -f chrome
विवरण:
SIGTERM
--oldest
SIGTERM
संकेत के समान है 15
, इसलिए --signal TERM
, या SIGTERM
डिफ़ॉल्ट संकेत होने के बाद से इसे छोड़ देंwmctrl
एकता और कुछ अन्य लोगों के साथ काम करता है लेकिन यह सभी विंडो प्रबंधकों के साथ काम नहीं करता हैwmctrl -c
एक बार में एक विंडो को बंद करता है इसलिए सभी क्रोम विंडो को बंद करने के लिए आपको कुछ इस तरह की आवश्यकता होगी while wmctrl -c 'Google Chrome'; do sleep 0.2; done
--oldest
यह एक विकल्प नहीं है: -o
कार्यों का उपयोग करना ।
-f
pkill को तर्क मेरे लिए काम नहीं कर रहा है। मेरे पास कुछ अन्य प्रक्रियाएँ हैं जो रूट के रूप में चल रही हैं, जो क्रोम शब्द को उनकी कमांड लाइनों में रखने के लिए होता है, इसलिए मुझे केवल अनुमति से वंचित होना पड़ता है। इसके बिना -f
, यह पूरी तरह से काम करता है।
यह मेरे लिए काम करता है:
killall --quiet --signal 15 -- chrome
ध्यान दें कि मैं इसे कोड में पठनीय रखने के लिए एक बल्कि वर्बोज़ कमांड का उपयोग कर रहा हूं, निश्चित रूप से आप यह भी जारी कर सकते हैं:
killall -q -15 chrome
पर Mac OS X
, बजाय इसका उपयोग
pkill -a -i "Google Chrome"
Google Chrome प्रक्रिया को देखने के लिए यह क्या करता है, और इसके सभी मूल प्रक्रियाओं को भी मार देता है।
Pkill मैनुअल से
-a Include process ancestors in the match list. By default, the
current pgrep or pkill process and all of its ancestors are
excluded (unless -v is used).
-i Ignore case distinctions in both the process table and the
supplied pattern.
@ कीथ-कासिओ के उत्तर के अनुसार , आप इसके बजाय सबसे पुरानी प्रक्रिया को मारने की कोशिश कर सकते हैं। ध्यान दें कि यह मेरे लिए काम नहीं किया।
pkill -o -i "Google Chrome"
प्रयत्न:
kill -3 <pid_of_chrome>
यह क्रोम को "QUIT" सिग्नल भेजेगा, जो कि आपके विंडो मैनेजर पर निर्भर करता है, यह वही होगा जो आम तौर पर बंद करने के लिए कहा जाता है।
kill
या killall
जहाँ क्रोम इसे एक दुर्घटना के रूप में देखता है, और पुनर्स्थापित करने के लिए कह रहा है।
SIGQUIT
आमतौर पर जब इसे बंद करने के लिए कहा जाता है तो मुझे आवेदन नहीं भेजा जाता है (मुझे ऐसा करने वाले किसी भी डब्ल्यूएम को नहीं पता है)। WM_DELETE_WINDOW
मानक है।
kill -15 <pid_of_chrome>
ने वही किया, जिसकी मुझे तलाश थी। लेकिन, google-chrome
एक से अधिक pids हैं और यह वास्तव में सही पाने के लिए कुछ प्रयास किया।