البرمجة

فحص وإيقاف تشغيل العمليات في Python بدون psutil و subprocess

في هذا السياق، يبدو أن لديك برنامج Python يحتفظ برقم تعريف العملية (pid)، وتحتاج إلى التحقق مما إذا كانت العملية ذات الـ pid هي العملية المطلوبة، وفي حال كانت كذلك، يتعين عليك إنهاء تشغيلها من خلال البرنامج الخاص بك. يبدو أنك تواجه بعض القيود، حيث لا يمكنك استخدام مكتبات مثل psutil و subprocess بسبب استخدام إصدار قديم من Python.

لتحقيق هذه المهمة بدون استخدام psutil و subprocess، يمكنك النظر إلى الحلول البديلة. يمكنك استخدام ملفات /proc في نظام Linux كواجهة للحصول على المعلومات حول العمليات. يمكنك قراءة ملفات /proc/[pid]/status للحصول على معلومات حول العملية.

على سبيل المثال، يمكنك استخدام مكتبة os لقراءة ملف /proc/[pid]/status وفحص المعلومات المتاحة به. يمكنك فحص السطر الذي يحتوي على “Name:” لمعرفة اسم العملية. بعد ذلك، يمكنك اتخاذ الإجراء المناسب بناءً على اسم العملية المسترجع.

على سبيل المثال:

python
import os def get_process_name_by_pid(pid): try: with open(f'/proc/{pid}/status', 'r') as status_file: for line in status_file: if line.startswith('Name:'): return line.split(':')[1].strip() except FileNotFoundError: return None # استخدم الدالة للتحقق من اسم العملية pid_to_check = 1234 # قم بتعويض 1234 برقم الـ pid الخاص بك process_name = get_process_name_by_pid(pid_to_check) if process_name == 'pfinder': # هنا يمكنك قتل العملية باستخدام الطريقة التي تفضلها في الإصدار القديم من Python # على سبيل المثال، يمكنك استخدام os.system os.system(f'kill {pid_to_check}') print(f'Process with pid {pid_to_check} (pfinder) has been terminated.') else: print(f'Process with pid {pid_to_check} does not match the expected process name.')

تذكر أن هذا الحلا لا يعمل على جميع الأنظمة، حيث يعتمد على وجود مجلد /proc الذي يستخدمه نظام Linux.

المزيد من المعلومات

في هذا السياق، يجب أن نتعمق أكثر في فهم كيفية الوصول إلى معلومات العملية باستخدام ملفات /proc في نظام Linux. دعونا نتناول بعض المعلومات الإضافية.

  1. ملف /proc/[pid]/status:

    • هذا الملف يحتوي على العديد من المعلومات حول العملية مثل اسمها وحالتها ومعلومات أخرى.
    • يمكنك استخدام دالة open في Python لفتح الملف وقراءة محتواه.
  2. المجلد /proc:

    • يحتوي على مجلد لكل عملية في النظام، واسم المجلد هو رقم تعريف العملية (pid).
    • يمكنك استخدام دالة os.path.exists للتحقق من وجود مجلد لعملية محددة.
  3. الدالة os.system:

    • تُستخدم لتنفيذ أوامر النظام من خلال الشل.
    • يمكنك استخدامها لتنفيذ أمر مثل “kill” لإيقاف تشغيل العملية.

قد يكون هناك تحذيرات بخصوص استخدام os.system، حيث يمكن أن يفتح الباب أمام ثغرات أمان. يفضل استخدام وسائل أمان أكثر تقدمًا إذا كانت متاحة في الإصدار القديم من Python الذي تستخدمه.

أيضًا، يمكنك تحسين الكود بمزيد من التعامل مع الأخطاء والاستثناءات لضمان استمرار البرنامج في العمل بشكل صحيح حتى في حالة وجود أخطاء أو عدم وجود ملفات /proc المتوقعة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر