एक मानक विधि है, अगर कार्यक्रम सहयोग करते हैं। kill -- -42जहां मूल प्रक्रिया का पृष्ठ 42 है वहां चलाएं । यह प्रक्रिया 42 के द्वारा प्रोसेस ग्रुप लीड में सभी प्रक्रियाओं के लिए एक संकेत भेजता है (शून्य से पहले साइन साइन इन प्रोसेस ग्रुप समूह)।
आम तौर पर, यदि आप अपने पायथन स्क्रिप्ट को शेल प्रॉम्प्ट से चलाते हैं और यह बस कांटे लगाता है gnuchess, तो दो प्रक्रियाओं को एक ही प्रक्रिया समूह में रहना चाहिए। लेकिन ऐसा प्रतीत नहीं होता है, क्योंकि Ctrl+ पूरे अग्रभूमि प्रक्रिया समूह को Cभेजता SIGINTहै।
Gnuchess अपने स्वयं के प्रक्रिया समूह में हो सकता है क्योंकि यह खुद को एक सत्र का नेता बनाता था (लेकिन मुझे नहीं पता कि यह ऐसा क्यों करेगा), या क्योंकि आपने इसे डबल-फोर्क किया है (अजगर ने एक शेल की खोज की है जो कि gnuchess को खोजता है)। एक डबल कांटा संभवतः परिहार्य है, लेकिन मैं आपको यह नहीं बता सकता कि आपके कोड को देखे बिना कैसे।
इस gnuchessप्रक्रिया को देखने का एक विश्वसनीय और POSIX- अनुरूप तरीका है
gnuchess_pids=$(ps -A -o pid= -o cmd= | awk '$2 ~ /(^|\/)gnuchess$/ {print $1}')
विशिष्ट यूनिक्स वेरिएंट के पास इसे प्राप्त करने के बेहतर तरीके हो सकते हैं, जैसे कि pgrep।
pkill, आपके तो नाम से एक प्रक्रिया को मारने के लिएps aux | grep gnuchessऔरkill -9 PIDबस बन सकता हैpkill -9 gnuchess