كيفية سرد العمليات في لينكس: دليل شامل

2024-07-25

المقدمة

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

يمكن أن يساعد فهم كيفية سرد وإدارة العمليات في سيناريوهات متنوعة، مثل تحديد التطبيقات التي تستهلك الموارد، وتصحيح البرمجيات، وضمان استقرار وأمان النظام. يقدم هذا المقال دليلاً شاملاً حول الأوامر والأدوات المختلفة المتاحة في لينكس لسرد العمليات، بدءًا من الأوامر الأساسية مثل ps و top إلى أدوات أكثر تقدمًا مثل pstree و lsof. بنهاية هذا الدليل، ستكون مجهزًا بالمعرفة اللازمة لإدارة العمليات بفعالية في بيئة لينكس الخاصة بك.

الأوامر الأساسية لسرد العمليات

أمر ps

يعتبر أمر ps واحدًا من أكثر الأوامر استخدامًا لسرد العمليات في لينكس. يوفر لقطة للعمليات الحالية. إليك بعض الاستخدامات الأساسية والخيارات:

  • ps: يعرض العمليات الخاصة بالشيل الحالي.
  • ps -e أو ps -A: يسرد جميع العمليات التي تعمل على النظام.
  • ps aux: يظهر معلومات مفصلة عن جميع العمليات، بما في ذلك تلك التي لا يمتلكها المستخدم.

مثال على الاستخدام:

ps
ps -e
ps aux

أمر top

يعتبر أمر top أداة قوية لمراقبة النظام في الوقت الحقيقي. يوفر عرضًا ديناميكيًا لعمليات النظام، مع تحديث دوري لعرض المعلومات الأكثر حداثة.

  • قم بتشغيل top لبدء الواجهة. يعرض استخدام وحدة المعالجة المركزية، واستخدام الذاكرة، وإحصائيات النظام الأخرى مع قائمة العمليات.
  • اضغط على q للخروج من واجهة top.

الخيارات الشائعة:

  • top -n 1: يعرض قائمة العمليات مرة واحدة ويخرج.
  • top -u [اسم المستخدم]: يظهر العمليات لمستخدم معين.

مثال على الاستخدام:

top
top -n 1
top -u user

أمر htop

يعتبر htop عارض عمليات تفاعلي يقدم واجهة أكثر سهولة وجاذبية بصريًا مقارنة بـ top. يسمح بالتمرير عبر قائمة العمليات أفقيًا ورأسيًا، ويقدم معلومات ملونة.

لاستخدام htop:

  1. قم بتثبيته (إذا لم يكن مثبتًا بالفعل) باستخدام مدير الحزم الخاص بك:
    sudo apt-get install htop  # لأنظمة Debian
    sudo yum install htop      # لأنظمة Red Hat
    
  2. قم بتشغيل htop ببساطة عن طريق كتابة:
    htop
    

أمر pgrep

يستخدم أمر pgrep للبحث عن العمليات بناءً على اسمها وخصائص أخرى. يمكن أن يكون مفيدًا بشكل خاص للبرمجة النصية والأتمتة.

الاستخدام الأساسي:

  • pgrep [نمط]: يسرد معرفات العمليات (PIDs) للعمليات التي تطابق النمط المعطى.
  • pgrep -u [اسم المستخدم] [نمط]: يقوم بتصفية العمليات حسب المستخدم.

مثال على الاستخدام:

pgrep bash
pgrep -u root sshd

تقنيات متقدمة لسرد العمليات

أمر pstree

يعرض أمر pstree العمليات في شكل شجرة، مما يظهر العلاقة الهيكلية بينها. يمكن أن يكون هذا مفيدًا بشكل خاص لفهم العلاقات بين العمليات الأبوية والطفلية.

  • pstree: يعرض شجرة العمليات لجميع العمليات.
  • pstree -p: يتضمن معرفات العمليات (PIDs) في المخرجات.
  • pstree [اسم المستخدم]: يظهر شجرة العمليات لمستخدم معين.

مثال على الاستخدام:

pstree
pstree -p
pstree root

أمر lsof

يعتبر أمر lsof (قائمة الملفات المفتوحة) أداة تسرد المعلومات حول الملفات التي فتحتها العمليات. هذا مفيد لتحديد أي العمليات تستخدم ملفات أو منافذ معينة.

الاستخدام الأساسي:

  • lsof: يسرد جميع الملفات المفتوحة.
  • lsof -u [اسم المستخدم]: يظهر الملفات المفتوحة بواسطة مستخدم معين.
  • lsof [ملف]: يسرد العمليات التي لديها ملف معين مفتوح.
  • lsof -i :[منفذ]: يسرد العمليات التي تستخدم منفذ شبكة معين.

مثال على الاستخدام:

lsof
lsof -u root
lsof /var/log/syslog
lsof -i :80

أمر pidstat

يوفر أمر pidstat إحصائيات لمهام لينكس (العمليات) مثل استخدام وحدة المعالجة المركزية، واستخدام الذاكرة، وإحصائيات الإدخال/الإخراج.

الاستخدام الأساسي:

  • pidstat: يعرض استخدام وحدة المعالجة المركزية للمهام.
  • pidstat -r: يظهر استخدام الذاكرة.
  • pidstat -d: يعرض إحصائيات الإدخال/الإخراج.

مثال على الاستخدام:

pidstat
pidstat -r
pidstat -d

أمر watch

يعمل أمر watch على تشغيل برنامج بشكل دوري، مع عرض المخرجات في الطرفية. إنه مفيد لمراقبة التغييرات في مخرجات الأوامر مع مرور الوقت.

الاستخدام الأساسي:

  • watch [أمر]: يشغل الأمر المحدد على فترات منتظمة (الافتراضي هو كل ثانيتين).
  • watch -n [فترة] [أمر]: يحدد فترة مختلفة.

مثال على الاستخدام:

watch ps -e
watch -n 5 netstat -tuln

أمثلة عملية

مراقبة أداء النظام

تعتبر مراقبة أداء النظام أمرًا بالغ الأهمية للحفاظ على نظام صحي واستجابة. تعتبر أوامر top و htop مفيدة بشكل خاص لهذا الغرض.

استخدام top لمراقبة الأداء

يوفر top عرضًا في الوقت الحقيقي لعمليات النظام واستخدام مواردها. يساعد في تحديد العمليات التي تستهلك وحدة معالجة مركزية أو ذاكرة مفرطة.

مثال على الاستخدام:

top

في واجهة top:

  • عمود PID يظهر معرف العملية.
  • عمود %CPU يظهر نسبة استخدام وحدة المعالجة المركزية.
  • عمود %MEM يظهر نسبة استخدام الذاكرة.

استخدام htop لمراقبة الأداء

يقدم htop واجهة تفاعلية محسنة مقارنة بـ top. يسمح لك بفرز العمليات، والبحث عن عمليات معينة، وقتل العمليات مباشرة من الواجهة.

مثال على الاستخدام:

htop

في واجهة htop:

  • استخدم مفاتيح الأسهم للتنقل عبر قائمة العمليات.
  • اضغط على F3 للبحث عن عملية معينة.
  • اضغط على F9 لقتل عملية محددة.

إدارة عمليات معينة

تنطوي إدارة عمليات معينة على العثور عليها باستخدام أوامر مثل ps و pgrep، ثم اتخاذ الإجراءات المناسبة مثل إرسال إشارات.

استخدام ps و pgrep للعثور على العمليات

للعثور على العمليات حسب الاسم أو خصائص أخرى، تعتبر ps و pgrep فعالة جدًا.

مثال على الاستخدام مع ps:

ps aux | grep apache2

مثال على الاستخدام مع pgrep:

pgrep apache2

إرسال إشارات إلى العمليات

بمجرد تحديد معرف العملية (PID)، يمكنك إدارة العملية باستخدام الإشارات. يقوم أمر kill بإرسال إشارات إلى العمليات، ويقوم أمر killall بإرسال إشارات إلى جميع العمليات التي تطابق اسمًا معينًا.

  • kill [PID]: يرسل الإشارة الافتراضية (SIGTERM) لإنهاء العملية.
  • kill -9 [PID]: يرسل إشارة SIGKILL لإنهاء العملية بالقوة.
  • killall [اسم العملية]: يرسل الإشارة الافتراضية إلى جميع العمليات بالاسم المحدد.

مثال على الاستخدام:

kill 1234
kill -9 1234
killall apache2

تحديد الملفات المفتوحة والاتصالات الشبكية

باستخدام أمر lsof، يمكنك تحديد الملفات والاتصالات الشبكية التي تستخدمها عمليات معينة. يمكن أن يساعد ذلك في تشخيص مشكلات مثل قفل الملفات أو تعارضات منافذ الشبكة.

مثال على الاستخدام:

lsof /var/log/syslog
lsof -i :80

عرض أشجار العمليات

يسمح لك أمر pstree بتصور العلاقات الأبوية والطفيلية بين العمليات. هذا مفيد لفهم التسلسلات الهيكلية والاعتمادات بين العمليات.

مثال على الاستخدام:

pstree

List Processes Linux

الأسئلة الشائعة

ما هي العملية في لينكس؟

العملية في لينكس هي حالة من برنامج قيد التشغيل. تشمل كود البرنامج، ونشاطه الحالي، والموارد المرتبطة مثل الذاكرة، ووصف الملفات، وسمات الأمان. تعتبر العمليات أساسية لنظام تشغيل لينكس وتمكن من تعدد المهام من خلال السماح بتشغيل برامج متعددة في وقت واحد.

كيف يمكنني سرد جميع العمليات الجارية في لينكس؟

لسرد جميع العمليات الجارية، يمكنك استخدام أمر ps مع الخيارات المناسبة:

ps -e

أو

ps aux

بدلاً من ذلك، يمكنك استخدام أوامر top أو htop للحصول على عرض في الوقت الحقيقي.

ما الفرق بين top و htop؟

top هو أداة سطر أوامر توفر عرضًا في الوقت الحقيقي لعمليات النظام واستخدام الموارد. htop هو إصدار محسّن من top مع واجهة تفاعلية أكثر سهولة. يسمح لك htop بالتمرير عبر قائمة العمليات، والبحث عن عمليات معينة، وقتل العمليات مباشرة من الواجهة.

كيف يمكنني العثور على عملية معينة بالاسم؟

يمكنك استخدام أمر pgrep للبحث عن العمليات بالاسم:

pgrep process_name

على سبيل المثال، للعثور على جميع العمليات التي تحتوي على "apache2" في اسمها:

pgrep apache2

كيف يمكنني قتل عملية في لينكس؟

لقتل عملية، حدد أولاً معرف العملية (PID) باستخدام أوامر مثل ps، top، أو pgrep. ثم استخدم أمر kill متبوعًا بـ PID:

kill PID

إذا لم تنته العملية بالإشارة الافتراضية، يمكنك استخدام الخيار -9 لقتلها بالقوة:

kill -9 PID

كيف يمكنني عرض شجرة هرمية من العمليات؟

يمكنك استخدام أمر pstree لعرض شجرة هرمية من العمليات:

pstree

لإدراج معرفات العمليات في الشجرة، استخدم:

pstree -p

كيف يمكنني سرد الملفات المفتوحة والعمليات التي فتحتها؟

يسرد أمر lsof المعلومات حول الملفات التي فتحتها العمليات. لسرد جميع الملفات المفتوحة، قم بتشغيل:

lsof

لرؤية أي عملية تستخدم ملفًا معينًا:

lsof /path/to/file

كيف يمكنني مراقبة أداء النظام مع مرور الوقت؟

يمكنك استخدام أمر watch لتشغيل أمر محدد بشكل دوري وعرض مخرجاته. على سبيل المثال، لمراقبة جميع العمليات الجارية كل ثانيتين:

watch ps -e

كيف يمكنني الحصول على إحصائيات مفصلة حول استخدام وحدة المعالجة المركزية والذاكرة والإدخال/الإخراج بواسطة العمليات؟

يوفر أمر pidstat إحصائيات مفصلة حول استخدام وحدة المعالجة المركزية والذاكرة والإدخال/الإخراج بواسطة العمليات. لعرض إحصائيات استخدام وحدة المعالجة المركزية:

pidstat

لعرض إحصائيات استخدام الذاكرة:

pidstat -r

لعرض إحصائيات الإدخال/الإخراج:

pidstat -d

ماذا يجب أن أفعل إذا كانت عملية لا تستجيب؟

إذا كانت عملية لا تستجيب، يمكنك محاولة إنهائها باستخدام أمر kill مع PID الخاص بها. إذا لم تنته بعد، استخدم أمر kill -9 لقتل العملية بالقوة:

kill -9 PID

تأكد من أن قتل العملية لن يؤثر سلبًا على نظامك أو أي مهام حرجة.