मेरी बैश स्क्रिप्ट को सेलेनियम सर्वर के साथ करने के बाद, स्क्रिप्ट इसे इस तरह मारती है:
kill `ps -ef | grep selenium | awk '{ print $2 }'`
जबकि यह काम करता है और यह सेलेनियम स्क्रिप्ट को मारता है, यह प्रक्रिया के लिए grep selenium
समय को मारने की कोशिश भी करता है, जब तक कि प्रक्रिया संख्या वापस किल कमांड पर पहुंच जाती है, प्रक्रिया समाप्त हो जाती है, इसलिए यह एक त्रुटि संदेश उत्पन्न करता है। (दूसरे शब्दों में: यह दो प्रक्रियाओं को समाप्त करता है, उनमें से एक असली सेलेनियम सर्वर है, दूसरा एक क्षणभंगुर प्रक्रिया है जो इस आदेश का एक साइड-इफेक्ट है कि मैं यह कैसे कर रहा हूं।)
इस प्रक्रिया को मारने के लिए एक और अधिक सुंदर तरीका है, कि यह अनपेक्षित दुष्प्रभाव नहीं है?
(FWIW एक विचार मेरे पास था: यह एक ही स्क्रिप्ट पहले सेलेनियम को स्क्रिप्ट में शुरू करता है, इसलिए हो सकता है कि अगर मैं सेलेनियम शुरू करने पर पीआईडी पर कब्जा कर सकता हूं, तो मैं इसे रख सकता हूं और इसे सीधे मार सकता हूं, बजाय इसके लिए सीधे प्रक्रिया आईडी। समस्या यह है, मुझे नहीं पता कि उस पीआईडी को कैसे प्राप्त करें, इसे रखने के लिए एक चर का उपयोग कैसे करें और इसे बाद में स्क्रिप्ट में कैसे संदर्भित किया जाए। लेकिन क्या यह इसके बारे में जाने का एक बेहतर तरीका है?)