30 مثالًا مفيدًا لأمر ‘ps’ لرصد العمليات في لينكس

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

لديها خيارات عديدة لتلاعب في الإخراج الخاص بها ، ومع ذلك ، ستجد عددًا صغيرًا منها مفيدة عملياً للاستخدام اليومي.

اقرأ أيضا: كل ما تحتاج إلى معرفته حول العمليات في نظام Linux [دليل شامل]

في هذه المقالة ، سنلقي نظرة على 30 مثالًا مفيدًا لأوامر ps لمراقبة العمليات الجارية النشطة على نظام Linux.

لاحظ أن ps ينتج إخراجًا مع سطر رأسي يمثل معنى كل عمود من المعلومات ، يمكنك العثور على معنى جميع العلامات على صفحة الدليل ps.

عرض جميع العمليات في القشرة الحالية

1. إذا قمت بتشغيل أمر ps بدون أي وسيطات ، فإنه يعرض العمليات للقشرة الحالية.

$ ps 
List Current Running Processes

طباعة جميع العمليات بتنسيقات مختلفة

2. عرض كل عملية نشطة على نظام Linux بتنسيق عام (Unix/Linux).

$ ps -A
OR
$ ps -e
List Processes in Standard Format

3. عرض جميع العمليات بتنسيق BSD.

$ ps au
OR
$ ps axu
List Processes in BSD Format

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

$ ps -ef
OR
$ ps -eF
List Processes in Long List Format

عرض عمليات تشغيل المستخدم

5. يمكنك اختيار جميع العمليات التي تمتلكها (المشغل لأمر ps، في هذه الحالة root)، اكتب:

$ ps -x 

6. لعرض عمليات مستخدم حقيقي (RUID) أو اسم، استخدم العلامة -U.

$ ps -fU tecmint
OR
$ ps -fu 1000
List User Processes by ID

7. لاختيار عمليات مستخدم حسب معرّف المستخدم الفعلي (ID) أو الاسم، استخدم الخيار -u.

$ ps -fu tecmint
OR
$ ps -fu 1000

طباعة جميع العمليات التي تعمل بصلاحيات مستخدم root (المعرّف الفعلي والحقيقي)

8. الأمر أدناه يمكنك من عرض كل عملية تعمل بامتيازات مستخدم root (المعرّف الحقيقي والفعلي) بتنسيق مستخدم.

$ ps -U root -u root 
Display Root User Running Processes

عرض عمليات المجموعة

9. إذا كنت ترغب في سرد جميع العمليات التي تمتلكها مجموعة معينة (معرّف المجموعة الحقيقي (RGID) أو الاسم)، اكتب.

$ ps -fG apache
OR
$ ps -fG 48
Display Group Processes

10. لسرد جميع العمليات التي تمتلكها اسم المجموعة الفعلي (أو الجلسة)، اكتب.

$ ps -fg apache

عرض العمليات حسب PID و PPID

11. يمكنك سرد العمليات حسب PID كما يلي.

$ ps -fp 1178
List Processes by PID

12. لاختيار العملية حسب PPID، اكتب.

$ ps -f --ppid 1154
List Process by PPID

13. اختر باستخدام قائمة PID.

$ ps -fp 2226,1154,1146
List Processes by PIDs

عرض العمليات حسب TTY

14. لاختيار العمليات بواسطة tty، استخدم العلامة -t كما يلي.

$ ps -t pts/0
$ ps -t pts/1
$ ps -ft tty1
List Processes by TTY

طباعة شجرة العمليات

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

$ ps -e --forest 
List Process Tree

16. يمكنك أيضًا طباعة شجرة عملية معينة مثل هذا.

$ ps -f --forest -C sshd
OR
$ ps -ef --forest | grep -v grep | grep sshd 
List Tree View of Process

طباعة خيوط العمليات

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

$ ps -fL -C httpd
List Process Threads

تحديد تنسيق الإخراج المخصص

عن طريق استخدام الخيارات -o أو –format، يسمح ps لك ببناء تنسيقات إخراج معرفة مُستخدمة كما هو موضح أدناه.

18. لعرض جميع محددات التنسيق، قم بتضمين العلم L.

$ ps L

19. الأمر أدناه يسمح لك بعرض PID، PPID، اسم المستخدم، والأمر الخاص بعملية.

$ ps -eo pid,ppid,user,cmd
List Processes with Names

20. فيما يلي مثال آخر لتنسيق إخراج مخصص يُظهر مجموعة نظام الملفات، قيمة جيدة، وقت البدء، والوقت المنقضي لعملية معينة.

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
List Process ID Information

21. للعثور على اسم عملية باستخدام مُعرفها الفريد.

$ ps -p 1154 -o comm=
Find Process using PID

عرض العمليات الأبوية والابنية

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

$ ps -C sshd
Find Parent-Child Process

23. العثور على جميع PIDs لجميع حالات العملية، مفيد عند كتابة النصوص التي تحتاج إلى قراءة PIDs من إخراج النص القياسي أو ملف.

$ ps -C httpd -o pid=
Find All Process PIDs

24. التحقق من وقت تنفيذ عملية.

$ ps -eo comm,etime,user | grep httpd

يظهر الإخراج أدناه أن خدمة HTTPD قد تم تشغيلها لمدة ساعة و 48 دقيقة و 17 ثانية.

Find Process Uptime

استكشاف أخطاء أداء نظام Linux

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

26. العثور على أعمال التشغيل العلوية حسب أعلى استخدام للذاكرة والمعالج في نظام Linux.

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
Find Top Running Processes

27. لإيقاف تشغيل عمليات Linux/تطبيقات غير مستجيبة أو أي عملية تستهلك وقت المعالجة المركزية بشكل كبير.

أولاً، ابحث عن PID للعملية أو التطبيق غير المستجيب.

$ ps -A | grep -i stress

ثم استخدم أمر kill لإنهاء تشغيله على الفور.

$ kill -9 2583 2584
Find and Kill a Process

طباعة معلومات الأمان

28. عرض سياق الأمان (بالأخص بالنسبة لـ SELinux) مثل هذا.

$ ps -eM
OR
$ ps --context
Find SELinux Context

٢٩. يمكنك أيضًا عرض معلومات الأمان بتنسيق محدد من قبل المستخدم باستخدام هذا الأمر.

$ ps -eo  euser,ruser,suser,fuser,f,comm,label
List SELinux Context by Users

أداء مراقبة العمليات في الوقت الحقيقي باستخدام أداة Watch

٣٠. وأخيرًا، نظرًا لأن أمر ps يعرض معلومات ثابتة، يمكنك استخدام أداة watch لأداء مراقبة العمليات في الوقت الحقيقي مع إخراج متكرر، يتم عرضه كل ثانية كما في الأمر التالي (حدد أمر ps مخصصًا لتحقيق هدفك).

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Real-Time Process Monitoring

مهم: يعرض أمر ps معلومات ثابتة فقط، لعرض إخراج تحدث بانتظام يمكنك استخدام أدوات مثل htop؛ top، و glances: الأداتان الأخيرتان هما في الواقع أدوات مراقبة أداء نظام Linux.

قد تود أيضًا قراءة المقالات ذات الصلة التالية.

  1. كيفية العثور على اسم العملية باستخدام رقم PID في نظام Linux
  2. العثور على أعلى العمليات الجارية حسب أعلى استخدام للذاكرة ووحدة المعالجة المركزية في نظام Linux
  3. A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
  4. كيفية العثور على العمليات الجارية وإيقافها في نظام Linux
  5. كيفية بدء الأمر في Linux في الخلفية وفصل العملية في الطرفية

هذا كل شيء الآن. إذا كان لديك أي مثال (مثال) مفيد لأمر ps لمشاركته (دون نسيان شرح ما يفعله) ، استخدم نموذج التعليق أدناه.

Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/