2013-06-11 6 views
10

मौजूद है, तो प्रक्रिया को मार दें, मैं चल रहे सभी यंत्र प्रक्रियाओं को मारना चाहता हूं। मैं इस का उपयोग कर रहा:यदि यह

sudo killall instruments

मैं एक स्क्रिप्ट में इस का उपयोग कर रहा है और कभी कभी प्रक्रिया नहीं चल रही है और यह मेरी स्क्रिप्ट कह चला रहे इस नाम का कोई प्रक्रियाओं देखते हैं बंद हो जाता है।

मैं कैसे जांच सकता हूं कि कोई विशेष प्रक्रिया चल रही है या नहीं? मेरे मामले में उपकरण।

+2

'ps -ax | ग्रेप वाद्ययंत्र | ग्रेप -v ग्रेप | WC -l' गैर होगा शून्य अगर नाम में 'यंत्र' के साथ एक प्रक्रिया है। –

उत्तर

8
sudo killall instruments 2>/dev/null 

पर्याप्त नहीं है?

+0

"killall" बहुत उपयोगी =) – IvanM

6

आपको अपनी स्क्रिप्ट को समाप्त किया जाता है तो <proc>

if pgrep instruments &> /dev/null ; then sudo killall instruments ; fi
+4

यदि आप 'pgrep' का उपयोग कर रहे हैं, तो भी 'pkill' –

+0

@glennjackman का उपयोग कर सकते हैं, धन्यवाद! मैंने अभी दिखाया है कि कोई व्यक्ति किसी प्रक्रिया की खोज कैसे कर सकता है, उसके नाम 'हत्यारा' द्वारा प्रक्रिया को मारने के लिए पर्याप्त होना चाहिए और ओपी इसे जानता है। – giordano

19

नामक एक प्रक्रिया के लिए खोज करने के लिए pgrep <proc> उपयोग कर सकते हैं, आप सबसे अधिक संभावना set -e सक्षम किया है, जब एक आदेश में विफल रहता है बाहर निकलने के लिए।

आप स्थिति के बारे में परवाह नहीं है, तो आप बस आदेश को || true संलग्न कर सकते हैं:

sudo killall instruments || true 
संबंधित मुद्दे