TheBrain نشر 5 مارس 2016 أرسل تقرير نشر 5 مارس 2016 أريد إنهاء عملية معينة (مثلا firefox)، في العادة استخدم أوامر ps وkill لفعل ذلك على الطرفية، فهل توجد طريقة مشابهة لفعل ذلك في لغة بايثون؟ اقتباس
1 هشام رزق الله نشر 5 مارس 2016 أرسل تقرير نشر 5 مارس 2016 توجد عدة طرق لفعل ذلك على لينكس، فإذا أردت استخدام أوامر لينكس على بايثون فيمكنك استخدام عدة دوال لفعل ذلك كما في المثال التالي: >>> import subprocess, signal >>> p = subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE) >>> out, err = p.communicate() >>> for line in out.splitlines(): ... if 'firefox' in line: ... pid = int(line.split(None, 1)[0]) ... os.kill(pid, signal.SIGKILL) ... أما لو أردت استخدام طريقة بايثونية لفعل ذلك فيمكنك استخدام دوال وحدة psutil حيث سندور في قائمة العمليات باستخدام جملة التكرار for مع دالة process_iter من وحدة psutil وسنبحث عن العملية المطلوبة فإذا وجدناها فسنحذفها: import psutil PROCNAME = "python.exe" for proc in psutil.process_iter(): # check whether the process name matches if proc.name() == PROCNAME: proc.kill() اقتباس
السؤال
TheBrain
أريد إنهاء عملية معينة (مثلا firefox)، في العادة استخدم أوامر ps وkill لفعل ذلك على الطرفية، فهل توجد طريقة مشابهة لفعل ذلك في لغة بايثون؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.