كيفية سرد العمليات في لينكس: دليل شامل
المقدمة
في نظام تشغيل لينكس، تعتبر العمليات وحدات أساسية للتنفيذ. تمثل هذه العمليات حالات تشغيل البرامج، بما في ذلك مهام النظام، وتطبيقات المستخدم، والخدمات الخلفية. إن إدارة العمليات وسردها بكفاءة أمر بالغ الأهمية لمشرفي النظام والمستخدمين على حد سواء، حيث يتيح لهم مراقبة أداء النظام، وتشخيص المشكلات، وتحسين استخدام الموارد.
يمكن أن يساعد فهم كيفية سرد وإدارة العمليات في سيناريوهات متنوعة، مثل تحديد التطبيقات التي تستهلك الموارد، وتصحيح البرمجيات، وضمان استقرار وأمان النظام. يقدم هذا المقال دليلاً شاملاً حول الأوامر والأدوات المختلفة المتاحة في لينكس لسرد العمليات، بدءًا من الأوامر الأساسية مثل 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
:
- قم بتثبيته (إذا لم يكن مثبتًا بالفعل) باستخدام مدير الحزم الخاص بك:
sudo apt-get install htop # لأنظمة Debian sudo yum install htop # لأنظمة Red Hat
- قم بتشغيل
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
الأسئلة الشائعة
ما هي العملية في لينكس؟
العملية في لينكس هي حالة من برنامج قيد التشغيل. تشمل كود البرنامج، ونشاطه الحالي، والموارد المرتبطة مثل الذاكرة، ووصف الملفات، وسمات الأمان. تعتبر العمليات أساسية لنظام تشغيل لينكس وتمكن من تعدد المهام من خلال السماح بتشغيل برامج متعددة في وقت واحد.
كيف يمكنني سرد جميع العمليات الجارية في لينكس؟
لسرد جميع العمليات الجارية، يمكنك استخدام أمر 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
تأكد من أن قتل العملية لن يؤثر سلبًا على نظامك أو أي مهام حرجة.