ps (حالة العمليات) هو أداة Unix/Linux أصلية لعرض معلومات تتعلق بمجموعة من العمليات الجارية على النظام: يقرأ هذه المعلومات من الملفات الافتراضية في نظام الملفات /proc. إنها واحدة من الأدوات المهمة لإدارة النظام خاصة تحت مراقبة العمليات، لمساعدتك في فهم ما يحدث في نظام Linux.
لديها خيارات عديدة لتلاعب في الإخراج الخاص بها ، ومع ذلك ، ستجد عددًا صغيرًا منها مفيدة عملياً للاستخدام اليومي.
اقرأ أيضا: كل ما تحتاج إلى معرفته حول العمليات في نظام Linux [دليل شامل]
في هذه المقالة ، سنلقي نظرة على 30 مثالًا مفيدًا لأوامر ps لمراقبة العمليات الجارية النشطة على نظام Linux.
لاحظ أن ps ينتج إخراجًا مع سطر رأسي يمثل معنى كل عمود من المعلومات ، يمكنك العثور على معنى جميع العلامات على صفحة الدليل ps.
عرض جميع العمليات في القشرة الحالية
1. إذا قمت بتشغيل أمر ps بدون أي وسيطات ، فإنه يعرض العمليات للقشرة الحالية.
$ ps

طباعة جميع العمليات بتنسيقات مختلفة
2. عرض كل عملية نشطة على نظام Linux بتنسيق عام (Unix/Linux).
$ ps -A OR $ ps -e

3. عرض جميع العمليات بتنسيق BSD.
$ ps au OR $ ps axu

4. لإجراء قائمة تنسيق كاملة، أضف علامة -f
أو -F
.
$ ps -ef OR $ ps -eF

عرض عمليات تشغيل المستخدم
5. يمكنك اختيار جميع العمليات التي تمتلكها (المشغل لأمر ps، في هذه الحالة root)، اكتب:
$ ps -x
6. لعرض عمليات مستخدم حقيقي (RUID) أو اسم، استخدم العلامة -U
.
$ ps -fU tecmint OR $ ps -fu 1000

7. لاختيار عمليات مستخدم حسب معرّف المستخدم الفعلي (ID) أو الاسم، استخدم الخيار -u
.
$ ps -fu tecmint OR $ ps -fu 1000
طباعة جميع العمليات التي تعمل بصلاحيات مستخدم root (المعرّف الفعلي والحقيقي)
8. الأمر أدناه يمكنك من عرض كل عملية تعمل بامتيازات مستخدم root (المعرّف الحقيقي والفعلي) بتنسيق مستخدم.
$ ps -U root -u root

عرض عمليات المجموعة
9. إذا كنت ترغب في سرد جميع العمليات التي تمتلكها مجموعة معينة (معرّف المجموعة الحقيقي (RGID) أو الاسم)، اكتب.
$ ps -fG apache OR $ ps -fG 48

10. لسرد جميع العمليات التي تمتلكها اسم المجموعة الفعلي (أو الجلسة)، اكتب.
$ ps -fg apache
عرض العمليات حسب PID و PPID
11. يمكنك سرد العمليات حسب PID كما يلي.
$ ps -fp 1178

12. لاختيار العملية حسب PPID، اكتب.
$ ps -f --ppid 1154

13. اختر باستخدام قائمة PID.
$ ps -fp 2226,1154,1146

عرض العمليات حسب TTY
14. لاختيار العمليات بواسطة tty، استخدم العلامة -t كما يلي.
$ ps -t pts/0 $ ps -t pts/1 $ ps -ft tty1

طباعة شجرة العمليات
15. تُظهر شجرة العمليات كيفية ربط العمليات في النظام ببعضها البعض؛ حيث تُعتبر العمليات التي تم قتل والديها معتمدة من قِبل init (أو systemd).
$ ps -e --forest

16. يمكنك أيضًا طباعة شجرة عملية معينة مثل هذا.
$ ps -f --forest -C sshd OR $ ps -ef --forest | grep -v grep | grep sshd

طباعة خيوط العمليات
17. لطباعة جميع الخيوط الخاصة بعملية، استخدم العلم -L
، سيُظهر ذلك الأعمدة LWP (عملية خفيفة) بالإضافة إلى NLWP (عدد العمليات الخفيفة).
$ ps -fL -C httpd

تحديد تنسيق الإخراج المخصص
عن طريق استخدام الخيارات -o أو –format، يسمح ps لك ببناء تنسيقات إخراج معرفة مُستخدمة كما هو موضح أدناه.
18. لعرض جميع محددات التنسيق، قم بتضمين العلم L
.
$ ps L
19. الأمر أدناه يسمح لك بعرض PID، PPID، اسم المستخدم، والأمر الخاص بعملية.
$ ps -eo pid,ppid,user,cmd

20. فيما يلي مثال آخر لتنسيق إخراج مخصص يُظهر مجموعة نظام الملفات، قيمة جيدة، وقت البدء، والوقت المنقضي لعملية معينة.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

21. للعثور على اسم عملية باستخدام مُعرفها الفريد.
$ ps -p 1154 -o comm=

عرض العمليات الأبوية والابنية
22. لتحديد عملية معينة بواسطة اسمها، استخدم العلم -C، سيُعرض أيضًا جميع العمليات الابنة الخاصة بها.
$ ps -C sshd

23. العثور على جميع PIDs لجميع حالات العملية، مفيد عند كتابة النصوص التي تحتاج إلى قراءة PIDs من إخراج النص القياسي أو ملف.
$ ps -C httpd -o pid=

24. التحقق من وقت تنفيذ عملية.
$ ps -eo comm,etime,user | grep httpd
يظهر الإخراج أدناه أن خدمة HTTPD قد تم تشغيلها لمدة ساعة و 48 دقيقة و 17 ثانية.

استكشاف أخطاء أداء نظام Linux
إذا كان النظام الخاص بك لا يعمل كما يجب، على سبيل المثال، إذا كان بطيئًا بشكل غير عادي، يمكنك إجراء بعض استكشافات النظام على النحو التالي.
26. العثور على أعمال التشغيل العلوية حسب أعلى استخدام للذاكرة والمعالج في نظام Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head OR $ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

27. لإيقاف تشغيل عمليات Linux/تطبيقات غير مستجيبة أو أي عملية تستهلك وقت المعالجة المركزية بشكل كبير.
أولاً، ابحث عن PID للعملية أو التطبيق غير المستجيب.
$ ps -A | grep -i stress
ثم استخدم أمر kill لإنهاء تشغيله على الفور.
$ kill -9 2583 2584

طباعة معلومات الأمان
28. عرض سياق الأمان (بالأخص بالنسبة لـ SELinux) مثل هذا.
$ ps -eM OR $ ps --context

٢٩. يمكنك أيضًا عرض معلومات الأمان بتنسيق محدد من قبل المستخدم باستخدام هذا الأمر.
$ ps -eo euser,ruser,suser,fuser,f,comm,label

أداء مراقبة العمليات في الوقت الحقيقي باستخدام أداة Watch
٣٠. وأخيرًا، نظرًا لأن أمر ps يعرض معلومات ثابتة، يمكنك استخدام أداة watch لأداء مراقبة العمليات في الوقت الحقيقي مع إخراج متكرر، يتم عرضه كل ثانية كما في الأمر التالي (حدد أمر ps مخصصًا لتحقيق هدفك).
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

مهم: يعرض أمر ps معلومات ثابتة فقط، لعرض إخراج تحدث بانتظام يمكنك استخدام أدوات مثل htop؛ top، و glances: الأداتان الأخيرتان هما في الواقع أدوات مراقبة أداء نظام Linux.
قد تود أيضًا قراءة المقالات ذات الصلة التالية.
- كيفية العثور على اسم العملية باستخدام رقم PID في نظام Linux
- العثور على أعلى العمليات الجارية حسب أعلى استخدام للذاكرة ووحدة المعالجة المركزية في نظام Linux
- A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
- كيفية العثور على العمليات الجارية وإيقافها في نظام Linux
- كيفية بدء الأمر في Linux في الخلفية وفصل العملية في الطرفية
هذا كل شيء الآن. إذا كان لديك أي مثال (مثال) مفيد لأمر ps لمشاركته (دون نسيان شرح ما يفعله) ، استخدم نموذج التعليق أدناه.
Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/