مراقبة العمليات في لينكس
- مفهوم مراقبة العمليات في لينكس
- أدوات مراقبة العمليات في لينكس
- معرفة جميع أرقام العمليات التابعة لبرنامج محدد في لينكس
- أوامر إيقاف العمليات في لينكس
مفهوم مراقبة العمليات في لينكس
مراقبة العمليات ( Processes monitoring ) يقصد بها معرفة العمليات النشطة التي تعمل حالياً في النظام بالإضافة إلى الموارد المستخدمة في الجهاز.
مراقبة العمليات النشطة في النظام تعد جزءاً مهماً من إدارته فهي تتيح إيقاف أو التحكم في سير العمليات عند الحاجة. مثلاً في حال اكتشاف استهلاك كبير للموارد أو في حال حدوث تعليق ستتمكن من معرفة ما هو سبب ذلك و اتخاذ القرار المناسب لحل المشكلة.
في لينكس، يمكنك مراقبة العمليات النشطة باستخدام موجّه الأوامر أو الأدوات الرسومية.
في هذا الدرس سنشرح كيفية استعمال الأوامر التي تتيح مراقبة العمليات النشطة بالإضافة إلى كيفية تشغيل و إيقاف العمليات.
أدوات مراقبة العمليات في لينكس
يوجد العديد من الأدوات التي يمكنك استعمالها لمراقبة العمليات النشطة من موجه الأوامر، سنتطرق لأهمها.
عند عرض العمليات الجارية قد يظهر لك عدد كبير جداً من العمليات و هذا الأمر طبيعي لأنه أثناء عمل النظام يكون هناك خدمات كثيرة تعمل في الخلفية و هي بدورها تنفذ عمليات في النظام، كما أنّ البرنامج الواحد قد يكون يستعمل عدة عمليات تعمل مع بعضها البعض بشكل متوازي.
الأداة ps
تستخدم هذه الأداة لعرض قائمة بالعمليات الجارية على النظام.
1- يمكنك استخدام الأمر ps aux
لعرض جميع العمليات الجارية في النظام كما يلي.
Linux Terminal
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 62800 25780 ? Ss 05:47 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize=44 rhgb
root 1 0.0 0.1 62800 25780 ? Ss 05:47 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize=44 rhgb
root 2 0.0 0.0 0 0 ? S 05:47 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 05:47 0:00 [pool_workqueue_release]
...
systemd+ 835 0.0 0.1 31648 17508 ? Ss 05:47 0:02 /usr/lib/systemd/systemd-resolved
...
2- يمكنك استخدام الأمر ps -u <username>
لعرض جميع العمليات الجارية من قبل مستخدم محدد.
فيما يلي قمنا بعرض جميع العمليات الجارية الخاصة بالمستخدم root
فقط.
Linux Terminal
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 62800 25780 ? Ss 05:47 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize=44 rhgb
root 1 0.0 0.1 62800 25780 ? Ss 05:47 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize=44 rhgb
root 2 0.0 0.0 0 0 ? S 05:47 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 05:47 0:00 [pool_workqueue_release]
...
3- يمكنك استخدام الأمر ps aux | grep <application>
لعرض جميع العمليات الجارية من قبل برنامج محدد.
فيما يلي قمنا بعرض جميع العمليات الجارية الخاصة بمتصفح firefox
فقط.
Linux Terminal
root 4049 5.7 4.5 21196376 739580 ? Ssl 05:50 20:40 /usr/lib64/firefox/firefox
root 4129 0.0 0.2 238604 45892 ? Sl 05:50 0:00 /usr/lib64/firefox/firefox -contentproc -parentBuildID 20241001070119 -prefsLen 32515 -prefMapSize 257253 -appDir /usr/lib64/firefox/browser {1436ccd9-889a-445a-aab4-f5a8f56a9adc} 4049 true 1 socket
root 4160 0.0 0.9 2710524 149500 ? Sl 05:50 0:08 /usr/lib64/firefox/firefox -contentproc -isForBrowser -prefsLen 32640 -prefMapSize 257253 -jsInitLen 234840 -parentBuildID 20241001070119 -greomni /usr/lib64/firefox/omni.ja -appomni /usr/lib64/firefox/browser/omni.ja -appDir /usr/lib64/firefox/browser {b7a8c01c-32a1-48af-954d-6bf346744ceb} 4049 true 2 tab
...
الأداة top
تستخدم هذه الأداة لعرض العمليات الحية مع تحديث البيانات بشكل مستمر.
فيما يلي قمنا باستخدام الأمر top
لعرض جميع العمليات الجارية في النظام.
Linux Terminal
Tasks: 272 total, 1 running, 271 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.5 us, 4.5 sy, 0.0 ni, 88.6 id, 0.0 wa, 0.0 hi, 2.3 si, 0.0 st
MiB Mem : 15853.9 total, 4749.9 free, 4725.7 used, 7670.3 buff/cache
MiB Swap: 8192.0 total, 8192.0 free, 0.0 used. 11128.2 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3098 root -2 0 3191776 370356 257692 S 18.2 2.3 3:17.26 kwin_wayland
5334 root 20 0 2802028 201560 123240 S 9.1 1.2 5:25.59 Isolated Web Co
27749 root 20 0 231932 5404 3228 R 9.1 0.0 0:00.01 top
1 root 20 0 62800 25780 11144 S 0.0 0.2 0:03.08 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pool_workqueue_release
...
فيما يلي الإختصارات التي يمكنك استعمالها للتعامل مع الأداة:
- لفرز العمليات حسب استهلاك المعالج ( CPU ) أنقر على الزرين P + Shift.
- لفرز العمليات حسب استهلاك الذاكرة ( RAM ) أنقر على الزرين M + Shift.
- للخروج من الأداة أنقر على الزرين C + Ctrl.
تحليل معلومات الأداة
فيما يلي معنى الأعمدة التي تظهر لك.
العمود | معناه |
---|---|
PID |
رقم المعرّف الموحّد الخاص بكل عملية، تستطيع استخدامه لتحديد أي عملية تريد التعامل معها أو التحكم بها مثل عرض المزيد من تفاصيل عنها أو إنهاءها. |
USER |
إسم المستخدم الذي قام بتشغيل العملية، يساعد في تحديد المسؤول عن العملية. |
PR |
أولوية تنفيذ العملية في النواة، أي مدى أهمية العملية بالنسبة للنظام مع الإشارة إلى أن القيم الأقل تعني أولوية أعلى مما يسمح للعملية بالحصول على المزيد من وقت وحدة المعالجة المركزية. |
NI |
القيمة اللطيفة تسمح للمستخدمين بتعديل أولوية تنفيذ العمليات، العمليات ذات القيم "اللطيفة" السالبة ستحصل على المزيد من وقت وحدة المعالجة المركزية، مما قد يؤدي إلى إبطاء العمليات الأخرى. العمليات ذات القيم "اللطيفة" الموجبة ستتنازل عن المزيد من وقت وحدة المعالجة المركزية، مما يسمح للعمليات الأخرى بالعمل بشكل أسرع. |
VIRT |
مقدار الذاكرة الافتراضية التي تستخدمها العملية. يشمل الذاكرة المادية ( RAM ) و الذاكرة المبدلة ( SWAP ) و هذا يساوي إجمالي الذاكرة التي يمكن للعملية الوصول اليها. |
RES |
مقدار الذاكرة المادية التي تستخدمها العملية. هذا هو الجزء الفعلي من الذاكرة الذي تستخدمه العملية في ذاكرة الوصول العشوائي ( RAM ). |
SHR |
مقدار الذاكرة التي تشاركها العملية مع عمليات أخرى. |
S |
حالة العملية و التي قد تكون إحدى الحالات التالية:
|
%CPU |
نسبة استخدام العملية لوحدة المعالجة المركزية. |
%MEM |
نسبة استخدام العملية لذاكرة الوصول العشوائية ( RAM ). |
+TIME |
مجموع الوقت الذي استهلكته العملية من معالج الحاسوب. |
COMMAND |
الأمر الذي تم استخدامه لتشغيل العملية. |
للإفادة، يوجد أداة أكثر تقدماً من top
إسمها htop
استعمالها أكثر سهولة حيث يمكنك التعامل معها بواسطة الفأرة كما أنها تعرض المعلومات بشكل أبسط و أوضح. يمكنك تحميلها و استخدامها بدلاً منها.
معرفة جميع أرقام العمليات التابعة لبرنامج محدد في لينكس
البرنامج الواحد قد يتضمن مجموعة من العمليات التي تعمل في ذات الوقت، مثلاً كل تبويب ( Tab ) مفتوح في المتصفح عبارة عن عملية.
لمعرفة جميع أرقام التعرفة للعمليات التابعة لبرنامج محدد، يمكنك استخدام الأمر pidof
و يليه إسم البرنامج كما يلي.
Linux Terminal
11079 10999 10996 10926 10911 10901 10856 10819 10760 10739 10661
أوامر إيقاف العمليات في لينكس
من الأسباب التي قد تجعلك تحتاج لإيقاف عملية بشكل يدوي تسببها بتعليق للنظام، أو لأنها تستهلك موارد كثيرة، أو لأنك تعتقد أنها تسبب مشكلة أمنية.
بشكل عام، لإيقاف أي عملية تحتاج معرفة رقم التعرفة الخاص بها ( PID ) و من ثم يمكنك إيقافها من خلاله.
و بالطبع يمكنك الحصول على رقم التعرفة الخاص بأي عملية باستعمال الأمر pidof
أو ps
أو top
كما ذكرنا سابقاً.
أمثلة على إيقاف العمليات
1- في المثال التالي قمنا باستخدام الأمر pkill
لإيقاف جميع العمليات التابعة لمتصفح firefox عن العمل.
Linux Terminal
2- في المثال التالي قمنا باستخدام الأمر kill -9
لإيقاف العملية التي تملك رقم معرّف يساوي 6352
.