दिलचस्प पोस्ट
Google Geocoding v2 API ने अचानक काम करना बंद कर दिया MVC4 स्टाइलबंडल चित्रों को हल नहीं कर रहा है नया फ़ायरबेज क्लाउड मेसेजिंग सिस्टम के साथ अधिसूचना आइकन बीडीएस 2006 सी छिपी हुई मेमोरी मैनेजर टकराव (कक्षा नया / हटाएं बनाम एएनआईस्ट्रिंग) SQL सर्वर 2005 में परमाणु यूपीएसईआरटी कैसे डेटा को बदलने के लिए। array के लिए लेनदेन करने के लिए फ्रेम जावा में एक स्ट्रिंग के प्रदर्शन की चौड़ाई की गणना करें टाइप वैरिएबल का प्रयोग करके एक चर कास्टिंग करना जावास्क्रिप्ट का उपयोग कर एक फ़ाइल डाउनलोड करें <td title = ""> में नई लाइन एक MySQL तालिका पर डुप्लिकेट को कैसे हटाएं? Msbuild का उपयोग करके सभी फ़ाइलों और फ़ोल्डरों की कॉपी करें मैं Google मानचित्र मार्कर का रंग कैसे बदल सकता / सकती हूं? अकेले सीएसएस का प्रयोग करके मंडल को ड्रा करें PyInstaller द्वारा उत्पन्न पायथन EXE में एप्लिकेशन पथ का निर्धारण करना

नाम से प्रक्रिया को मारना?

मैं एक प्रक्रिया (विशेष रूप से iChat) को मारने की कोशिश कर रहा हूं कमांड लाइन पर, मैं इन कमांड का उपयोग करता हूं:

ps -A | grep iChat 

फिर:

 kill -9 PID 

हालांकि, मुझे पूरा यकीन नहीं है कि ये कमांड पायथन पर कैसे अनुवाद करें।

Solutions Collecting From Web of "नाम से प्रक्रिया को मारना?"

यह मानते हुए कि आप यूनिक्स जैसी प्लेटफॉर्म पर हैं (ताकि ps -A मौजूद है),

 >>> import subprocess, signal >>> p = subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE) >>> out, err = p.communicate() 

आपको आउटपुट (एक स्ट्रिंग) में ps -A की आउटपुट देता है आप इसे नीचे लाइनों और उन पर पाश में तोड़ सकते हैं …:

 >>> for line in out.splitlines(): ... if 'iChat' in line: ... pid = int(line.split(None, 1)[0]) ... os.kill(pid, signal.SIGKILL) ... 

(आप signal आयात करने से बच सकते हैं, और signal बदले 9 उपयोग कर सकते हैं। signal.SIGKILL , लेकिन मुझे यह विशेष रूप से पसंद नहीं है, इसलिए मैं इसे नामित निरंतरता का इस्तेमाल करना चाहता हूं)।

बेशक आप इन लाइनों पर अधिक परिष्कृत प्रसंस्करण कर सकते हैं, लेकिन यह नकल करता है कि आप खोल में क्या कर रहे हैं।

यदि आप ps से बचने के बाद क्या कर रहे हैं, तो अलग-अलग यूनिक्स जैसी प्रणालियों में ऐसा करना कठिन है ( ps एक सामान्य सूची में प्रोसेस सूची प्राप्त करने के लिए उनकी सामान्य एपीआई है)। लेकिन अगर आपके पास विशिष्ट यूनिक्स जैसी प्रणाली है, केवल (किसी भी क्रॉस-प्लेटफ़ॉर्म पोर्टेबिलिटी की आवश्यकता नहीं है), यह संभव हो सकता है; विशेष रूप से, लिनक्स पर, /proc छद्म-फाइलसिस्टम बहुत मददगार है। लेकिन इससे पहले कि हम इस आखिरी भाग में मदद कर सकें, आपको अपनी सटीक आवश्यकताओं को स्पष्ट करने की आवश्यकता होगी।

psutil नाम से प्रक्रिया ढूंढ सकता है और उसे मार सकता है:

 import psutil PROCNAME = "python.exe" for proc in psutil.process_iter(): # check whether the process name matches if proc.name() == PROCNAME: proc.kill() 

यदि आपको क्रॉस-प्लेटफॉर्म होने के लिए विंडोज केस पर विचार करना है, तो निम्न प्रयास करें:

 os.system('taskkill /f /im exampleProcess.exe') 

यदि आप killall है:

 os.system("killall -9 iChat"); 

या:

 os.system("ps -C iChat -o pid=|xargs kill -9") 

यह विंडोज 7 में मेरे लिए काम किया

 import subprocess subprocess.call("taskkill /IM geckodriver.exe") 

नीचे दिए गए कोड सभी iChat उन्मुख कार्यक्रमों को मार डालेगा:

 p = subprocess.Popen(['pgrep', '-l' , 'iChat'], stdout=subprocess.PIPE) out, err = p.communicate() for line in out.splitlines(): line = bytes.decode(line) pid = int(line.split(None, 1)[0]) os.kill(pid, signal.SIGKILL) 

नाम से प्रक्रिया को मारने के लिए आप एक यूनिक्स सिस्टम में pkill <process_name> उपयोग कर सकते हैं

फिर अजगर कोड होगा:

 >>> import os >>> process_name=iChat >>> os.system('pkill '+process_name) 

मेरे लिए केवल एक चीज है जो काम करती है:

उदाहरण के लिए

 import subprocess proc = subprocess.Popen(["pkill", "-f", "scriptName.py"], stdout=subprocess.PIPE) proc.wait() 

यदि आप किसी विशेष शीर्षक (एस) को ले जाने की प्रक्रिया (एसई) या सीएमडी.एक्सए को मारना चाहते हैं

 import csv, os import subprocess # ## Find the command prompt windows. # ## Collect the details of the command prompt windows and assign them. tasks = csv.DictReader(subprocess.check_output('tasklist /fi "imagename eq cmd.exe" /v /fo csv').splitlines(), delimiter=',', quotechar='"') # ## The cmds with titles to be closed. titles= ["Ploter", "scanFolder"] # ## Find the PIDs of the cmds with the above titles. PIDList = [] for line in tasks: for title in titles: if title in line['Window Title']: print line['Window Title'] PIDList.append(line['PID']) # ## Kill the CMDs carrying the PIDs in PIDList for id in PIDList: os.system('taskkill /pid ' + id ) 

आशा करता हूँ की ये काम करेगा। मेरा मेरा कई बेहतर समाधान हो सकता है

आप खिड़कियों पर ऐसा करने के लिए WMI मॉड्यूल का उपयोग कर सकते हैं, यद्यपि यह आपके द्वारा बहुत अधिक क्लैंकियर है जो यूनिक्स लोगों के लिए उपयोग किया जाता है; import WMI एक लंबा समय लेता है और इस प्रक्रिया में आने के लिए मध्यवर्ती दर्द होता है।

9 सिगिल सिग्नल का प्रतिनिधित्व करता है तो आप 9 के स्थान पर KILL का उपयोग कर सकते हैं

 os.system("kill -s KILL 1234") 

0r

 os.sytem("kill -KILL 1234") 

आप अजगर से उन सटीक आदेशों को इस तरह से कर सकते हैं

 import os print os.system('kill -9 ' + pid) 

लेकिन pid मिलने पर आपके आदेश को थोड़ी सी काम की आवश्यकता है (सिर्फ इसलिए नहीं मान सकते क्योंकि इसकी आईचैट है कि यह वाकई आईचैट है) आपको मॉल फ्लैस्चन

 import psutil pid_list=psutil.get_pid_list() print pid_list p = psutil.Process(1052) print p.name for i in pid_list: p = psutil.Process(i) p_name=p.name print str(i)+" "+str(p.name) if p_name=="PerfExp.exe": print "*"*20+" mam ho "+"*"*20 p.kill()