عملية الزومبي. لم يسمع الجميع بهذه الكلمة الشيقة والمخيفة المتعلقة بنظام التشغيل Linux. على جهاز الكمبيوتر الشخصي ، قد لا تشكل عمليات الزومبي تهديدًا للمستخدم العادي ، ولكن عندما يتعلق الأمر بخوادم Linux ، يجب تحديد هذه العمليات وإيقافها.
يمكن أن تتسبب مثل هذه العمليات في حدوث مشكلات في جدول عمليات النظام الخاص بك ، وبالتالي تتسبب في التلاعب بالأداء السليم لجهازك. لذلك ، في هذه المقالة ، سنناقش عمليات الزومبي بالتفصيل ، جنبًا إلى جنب مع دليل شامل لإيجاد وقتل عمليات الزومبي على جهاز Linux.
ما هي عمليات الزومبي؟
ولكن قبل كل ذلك ، من المهم أن تعرف ما هي عمليات الزومبي حقًا. هذه ليست سوى عمليات ميتة وباتت تشغل مساحة على جدول عمليات النظام. أ كتلة التحكم في العملية أو PCB عبارة عن بنية بيانات تخزن التفاصيل المرتبطة بالعمليات الفردية التي تعمل على نظامك.
يتكون جدول العملية من معرف العملية ، ورابط إلى ثنائي الفينيل متعدد الكلور ، وغيرها من المعلومات المفيدة المتعلقة بالعملية. عمليات الزومبي لها معرّفات العمليات الخاصة بها ومعلومات إدارة الذاكرة. نظرًا لأن نظام التشغيل Linux يحتوي على عدد محدود من معرفات العمليات المتاحة ، فلا يمكن للعمليات الأخرى استخدام معرفات PID حتى تتوقف عملية الزومبي.
على الرغم من أن عملية واحدة أو اثنتين من عمليات الزومبي لن تتسبب في أي تعطيل أو مشكلات في الأداء على جهاز الكمبيوتر الخاص بك ، فإن ملف يمكن أن يؤدي عدد كبير من هذه العمليات إلى الإضرار بسير عمل النظام عن طريق إغراق جدول العملية و مصادر.
ما الذي يسبب عمليات Zombie على Linux؟
لفهم السبب الأساسي لعملية الزومبي بالتفصيل ، سيتعين عليك معرفة كيفية بدء العمليات وتوقفها في Linux. يراقب نظام التشغيل Linux جميع العمليات الجارية والشياطين على جهاز الكمبيوتر. ال جدول العملية هي قائمة الهياكل التي تحتوي على جميع العمليات التي تعمل حاليًا على جهازك.
يتكون كل إدخال عملية في جدول العملية من ارتباط إلى ملف كتلة التحكم في العملية من تلك العملية المحددة. يقوم ثنائي الفينيل متعدد الكلور بتخزين التفاصيل المرتبطة بهذه العملية المعينة. هذه التفاصيل تشمل:
- حالة العملية: الوضع الحالي للعملية
- رقم العملية: رقم فريد يستخدم لتعريف العملية
- عداد البرنامج: يحتوي على معلومات تتعلق بالتعليمات التالية
- السجلات: قائمة بجميع سجلات وحدة المعالجة المركزية التي تستخدمها العملية
- فتح قائمة الملفات: الملفات التي تستخدمها العملية
- معلومات جدولة وحدة المعالجة المركزية: يحتوي على معلومات مرتبطة بوقت وحدة المعالجة المركزية والموارد المخصصة للعملية
- معلومات إدارة الذاكرة: يتضمن تفاصيل عن حجم الذاكرة المستخدمة من قبل العملية
- معلومات I / O: قائمة بأجهزة الإدخال أو الإخراج التي تستخدمها العملية
يستخدم Linux حالات العملية التالية لوصف جميع عملياته.
- ر: عملية التشغيل
- س: عملية النوم
- د: عملية النوم المتواصل
- تي: تم إنهاء العملية
- ض: عملية الزومبي
عندما تكمل العملية المهمة المعينة ، يتم تعيين حالة العملية على أنها الاموات الاحياء أو ض. كل عملية لها عملية الوالدين التي تستدعي مجموعة من الوظائف المسماة انتظر() التي تنتظر تغيير الدولة للعملية. على سبيل المثال ، إذا تغيرت حالة العملية من جري ل الاموات الاحياء، ال انتظر() سيتم تشغيل الطريقة.
ال انتظر() يحذف الأسلوب عادةً كتلة التحكم في العملية المتعلقة بعملية الزومبي هذه ثم يزيل إدخال تلك العملية من جدول العملية.
لكن في بعض الأحيان ، بسبب ضعف تطوير البرنامج ، لا تستدعي العملية الأب انتظر() وظيفة. ونتيجة لذلك ، لا يقوم النظام بحذف ثنائي الفينيل متعدد الكلور لعملية الزومبي. يبقى إدخال جدول العملية لهذه العملية المحددة كما هو.
هذا يمنح عملية الزومبي عمرًا لانهائيًا. نظرًا لأن النظام لا يمكنه إنهاء العملية ، لا يتم حذف إدخال العملية مطلقًا ، ولا يتم تحرير PID أبدًا.
يتعلم أكثر: طرق لقتل البرامج غير المستجيبة في Linux
كيف تجد عمليات الزومبي؟
تتمثل الخطوة الأولى لإزالة عمليات zombie على نظامك في تحليل العملية التي تحتوي على الاموات الاحياء حالة العملية. بينما لن تكون قادرًا على قتل هذه العمليات مباشرة لأن النظام قد أزالها بالفعل من الذاكرة ، يمكنك قتل العملية الأبوية المرتبطة بها.
أولاً ، تحتاج إلى التحقق مما إذا كان جدول عمليات النظام الخاص بك يحتوي على عملية زومبي. يمكنك القيام بذلك بسهولة باستخدام ملف أعلى أمر. ببساطة افتح جهازك واكتب:
أعلى
سترى ناتجًا مشابهًا لهذا. لاحظ عدد عمليات الزومبي في الجزء العلوي من نافذة المحطة. إذا كان الناتج صفرًا ، فلا داعي للقلق.
يمكنك سرد المعلومات المتعلقة بعمليات الزومبي هذه عن طريق الأنابيب الأمر ps مع egrep. Egrep هو امتداد للأمر grep في Linux الذي يتعامل مع جميع الأنماط كسلسلة regex ممتدة.
متعلق ب: دليل المبتدئين للتعبيرات العادية باستخدام بايثون
اكتب الأمر التالي لسرد جميع عمليات الزومبي:
ps aux | egrep "Z | متوقف"
سيبحث الأمر المذكور أعلاه عن الأسطر التي تحتوي على أي منهما ض أو البائد في الإخراج الذي تم إنشاؤه بواسطة الأمر ps. يتكون الإخراج من قائمة بعمليات الزومبي التي تعمل على نظامك.
قتل عمليات الزومبي باستخدام أمر القتل
الآن بعد أن عرفت عمليات الزومبي التي تستهلك حاليًا موارد النظام لديك ، فقد حان الوقت لقتل هذه العمليات.
في حين أن أسهل طريقة لقتل عمليات الزومبي هي إعادة تشغيل جهاز الكمبيوتر الخاص بك ، إلا أن هذا ليس خيارًا ممكنًا في بعض الأحيان ، خاصة إذا كنت تدير خادمًا.
لقتل عمليات الزومبي دون إغلاق الخادم الخاص بك ، قم بتدوين معرف العملية لأي عملية زومبي. من القسم السابق ، يمكننا أن نرى أن معرف عملية الزومبي كان 18614. بعد ذلك ، استخدم معرف المنتج هذا للعثور على معرف العملية الأصل.
ps -o ppid = -p 18614
انتاج:
18613
تحقق مما إذا كان معرف العملية الأصل موجودًا باستخدام ملاحظة أمر.
ps -e | grep 18613
الآن وقد تأكدنا من وجود العملية الأبوية ، فقد حان الوقت لقتله. مرر ال -سيجكيل علم مع قتل الأمر على النحو التالي:
18613
بمجرد أن تنتهي من عملية الوالدين ، سيقوم النظام بحذف عملية الزومبي وإزالتها من جدول العملية تلقائيًا.
إدارة العمليات بكفاءة على Linux
يجب على كل مسؤول نظام إعطاء الأولوية لعمليات المراقبة التي تعمل على جهاز Linux. على الرغم من أن عمليات الزومبي ليست بالضرورة ضارة لنظامك ، إلا أنها قد تسبب مشكلات في الأداء إذا كانت موجودة بأعداد كبيرة.
إذا كنت من مستخدمي Linux المبتدئين وليس لديك أي فكرة عن كيفية إدارة نظام التشغيل Linux للعمليات ، فإن تعلم ما هي العمليات أولاً هو مكان جيد للبدء.
يعد فهم العملية والوظائف جانبًا أساسيًا للتعامل مع نظام Linux. إليك ما تحتاج إلى معرفته.
اقرأ التالي
- لينكس
- لينكس
- معالجة
Deepesh هو محرر جونيور لنظام Linux في MUO. لقد كان يكتب محتوى إعلاميًا على الإنترنت لأكثر من 3 سنوات. في أوقات فراغه ، يستمتع بالكتابة والاستماع إلى الموسيقى ولعب الجيتار.
اشترك في نشرتنا الإخبارية
انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!
خطوة أخرى أيضا…!
يرجى تأكيد عنوان بريدك الإلكتروني في البريد الإلكتروني الذي أرسلناه لك للتو.