خصم ٥٠٪ على جميع الخطط، لفترة محدودة. يبدأ من $2.48/mo
١٠ دقائق متبقية
الخوادم ونظام التشغيل

إتقان إدارة العمليات – أمر ps aux في Linux

أيدا لوفجود By أيدا لوفجود قراءة ١٠ دقائق تحديث: ١١ يوليو ٢٠٢٤
أمر ps aux في linux

هل لديك خمس علامات تبويب مفتوحة على الأقل في متصفحك، تبحث عن حل لمشكلة Linux واجهتها؟
هذا السلوك ليس حكراً عليك أو على البشر عموماً. الأجهزة أيضاً تُنفّذ مهام متعددة في آنٍ واحد. وتماماً كما تفعل، فإن Linux يُشغّل عدة عمليات في الوقت ذاته. سواء كنت مطوراً يستخدم Linux باحترافية، أو مستخدماً عادياً يعمل به في مهامه اليومية، فمن الضروري أن تفهم هذه العمليات المتوازية لتحتفظ بالتحكم الكامل في نظامك. إدارة العمليات والتحكم في النظام ركيزتان أساسيتان لتشغيل أي نظام Linux.

لإدارة العمليات الجارية على النظام بكفاءة، ومتابعة ما يحدث في الوقت الفعلي، والاطلاع على العمليات التي تعمل في الخلفية، والتحكم في موارد النظام، تحتاج إلى معرفة تقنية بإدارة العمليات. الأمر ps aux أمر قوي يؤدي دوراً محورياً في إدارة العمليات والتحكم في النظام. في هذا المقال، نستعرض الأمر ps aux واستخداماته، ونشرح أساسيات آلية عمل عمليات Linux.

فهم إدارة العمليات في Linux

عند العمل مع Linux، تتمّ معظم تفاعلاتنا مع النظام عبر الأوامر. في Linux، العملية هي تنفيذ أمر معين. وتشمل إدارة عمليات Linux التحكم في العمليات التي أطلقها أمر ما، إذ يمكنك إيقاف عملية، أو تشغيل عملية جديدة، أو استئناف عملية تم إيقافها. كما يمكنك التعامل مع الأوامر قيد التنفيذ.

تنقسم عمليات Linux إلى نوعين:

  • العمليات الأمامية
  • العمليات الخلفية

العمليات الأمامية في Linux

العملية الأمامية هي عملية تُنفَّذ بصورة نشطة وتستلزم عادةً تفاعلاً مستمراً وفورياً مع المستخدم. وعندما تكون عملية أمامية قيد التشغيل، تتوقف العمليات الأخرى عن التنفيذ، مما يعني أنك لا تستطيع تشغيل أي أوامر أخرى. تتلقى العملية الأمامية المدخلات من لوحة المفاتيح عبر ما يُعرف بالمدخل القياسي stdin. ولتوضيح المصطلحات، فإن stdin وstdout هما تدفقان للبيانات في Linux إلى جانب stderr، وهي الطريقة التي يتفاعل بها المستخدم مع العملية ويُزوّدها بالبيانات. أما المخرج القياسي stdout فهو ما تُنتجه العملية بناءً على وظيفتها والمدخلات المقدَّمة إليها. العمليات الأمامية هي وضع التنفيذ الافتراضي في Linux.

العمليات الخلفية في Linux

العمليات الخلفية هي نقيض العمليات الأمامية تماماً؛ فهي لا تستلزم تفاعل المستخدم، ولا تستأثر بالطرفية بالكامل، مما يُتيح تشغيل عمليات أخرى في الوقت ذاته. كذلك تختلف طبيعة المدخلات والمخرجات في العمليات الخلفية؛ إذ لا تأخذ stdin في الغالب، غير أن نتائجها يمكن عرضها بوصفها stdout. ويتزامن عرض مخرجات العمليات الخلفية مع مخرجات العمليات الأمامية الأخرى، فتستطيع متابعة تقدم العملية الخلفية أو نتائجها دون مقاطعة أي إجراءات أخرى.

نظراً لاعتماد تنفيذ طيف واسع من المهام في Linux على سطر الأوامر، قد تكون العمليات الأمامية عائقاً، في حين أن تشغيل العمليات في الخلفية يُحرّر الطرفية لتنفيذ مهام أخرى. لذا، من المنطقي نقل مهمة أمامية إلى الخلفية. ولتتمكن من إرسال عملية إلى الخلفية عليك أولاً إيقاف تنفيذها في المقدمة، وذلك بالضغط على CTRL+Z. ثم بكتابة الأمر bg، ستُستأنف العملية الموقوفة في الخلفية. أما الأمر fg فيعكس ذلك ويُعيد العملية إلى المقدمة.

حالة العملية: البنية والأوامر وتفسير المخرجات

تستلزم إدارة العمليات الفعّالة في Linux فهم حالات العمليات التي يمكن رصدها عبر الأمر ps aux. لكن قبل التعمق في هذا الأمر، لنتعرف على حالات العمليات المختلفة. رغم تعدد أنواع العمليات وحالاتها، إليك جدولاً بأكثرها شيوعاً:

حالة العملية الوصف
قيد التشغيل (R) العملية تعمل حالياً وتستهلك موارد CPU.
في وضع الانتظار قابلة للمقاطعة (S) العملية في انتظار مدخل معين أو حدث لاستئناف التشغيل، وهي لا تستهلك موارد CPU حالياً. عند توفر الموارد أو ورود إشارة، تستأنف العملية عملها.
غير قابلة للمقاطعة (D) على غرار العملية التي تكون في حالة نوم قابل للمقاطعة، فإن العملية في حالة النوم غير القابل للمقاطعة لا تستهلك موارد CPU. الفرق الوحيد أنها لا تستجيب للإشارات، ولا تستأنف عملها إلا عند توفر الموارد.
متوقفة (T) أدى إدخال المستخدم أو حدث معين إلى إيقاف العملية مؤقتاً. العملية في هذه الحالة لا تستهلك أي موارد من CPU.
منتهية (X) انتهت العملية ولم تعد موجودة.

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

الصياغة والأوامر للحصول على حالة العمليات

يمكنك الحصول على حالة العمليات في Linux باستخدام الصياغة الأساسية لأمر ps:

ps [process name]

ثمة خيارات أخرى يمكن استخدامها مع أمر ps:

إلى: يعرض هذا الخيار قائمة شاملة بجميع العمليات الجارية على النظام، وتشمل المعلومات المقدمة: معرّفات العمليات (PIDs)، ومعرّفات العمليات الأصلية (PPIDs)، واستخدام CPU والذاكرة، وحالات العمليات. مخرجات الأمر ps aux أكثر تنظيماً وقابلية للقراءة، وتحتوي على معلومات أكثر فائدة مقارنةً بأمر ps الأساسي.

ef: يعرض هذا الخيار قائمة بتنسيق كامل للعمليات مع تفاصيل إضافية، بما فيها التسلسل الهرمي للعمليات على شكل بنية شجرية.

l: يعرض هذا الخيار قائمة بتنسيق مطوّل تتضمن معلومات أكثر تفصيلاً عن العمليات.

فهم المخرجات

عند تنفيذ أمر ps مع الخيارات المطلوبة، تظهر مخرجات تمثّل العمليات الجارية حالياً على نظامك. تتكون هذه المخرجات من أعمدة تعرض خصائص مختلفة للعمليات، منها: معرّف العملية (PID)، ومعرّف العملية الأصلية (PPID)، واستخدام CPU والذاكرة، وحالة العملية، ونوع الطرفية، واسم الأمر.

فيما يلي شرح لما يعنيه كل عمود من هذه الأعمدة:

معرّف العملية: يعرض هذا العمود المعرّف الفريد للعملية.

TTY: يعرض هذا العمود نوع الطرفية التي سجّل المستخدم دخوله عبرها.

الوقت: يشير هذا العمود إلى مقدار CPU الذي استهلكته العملية بالدقائق والثواني.

CMD: يمثّل هذا العمود اسم الأمر الذي أطلق هذه العملية.

تحليل المعلومات التي يوفرها الأمر ps يمنحك فهماً أعمق لسلوك جهازك Linux.

تقنيات متقدمة في الأمر ps لإدارة العمليات

لنستعرض بعض الميزات المتقدمة للأمر ps وكيفية الاستفادة منها بفاعلية:

١. ترتيب العمليات

يمكن استخدام الأمر ps aux لترتيب النتائج بحسب أعمدة مختلفة. على سبيل المثال، يمكنك ترتيب العمليات حسب معرّف العملية أو استخدام CPU لعرضها بالترتيب الذي تريده.

إليك مثالاً على ترتيب العمليات حسب معرّف العملية باستخدام ps aux:

ps aux –-sort pid

يُستخدم الأمر head للحصول على أول خمسة أسطر من الناتج فقط.

ps aux فرز pid

٢. عرض شجرة العمليات

إن أردت رؤية العلاقة بين العمليات الأصلية والفرعية بوضوح، يمكنك استخدام الأمر ps مع خيار forest.

ps -aux --forest

العلاقة بين العمليات الأصلية والفرعية في Linux

لعرض العلاقة بين العمليات على شكل شجرة، يمكنك أيضاً استخدام الأمر pstree. ينتج هذا الأمر مخرجاً أكثر وضوحاً ويُجسّد التسلسل الهرمي بين العمليات بدقة. لاستخدامه، اكتب الأمر التالي:

pstree [pid or username]

بتمرير PID إلى هذا الأمر، فإنك تحدد تلك العملية بوصفها جذر الشجرة.

٣. تصفية العمليات

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

ps -u [username]

تصفية عمليات Linux باستخدام الأمر ps

يستطيع الأمر ps aux grep تصفية العمليات بحسب أي نمط أو كلمة مفتاحية تمرّرها إليه. انظر إلى الكود أدناه كمثال توضيحي:

مثال على الأمر ps aux grep

يعرض هذا الأمر أولاً قائمة بجميع العمليات، ثم يمرّر الناتج إلى الأمر grep لتصفية تلك القائمة الطويلة بحسب معرّف العملية. في الصورة أعلاه، ترى قائمة بجميع العمليات التي يحتوي سجلها على الرقم 15.

للمزيد من المعلومات حول الأمر ps وإمكانياته، يمكنك الرجوع إلى صفحة الدليل الخاصة به. الكود أدناه سيعرض لك تلك الصفحة:

man ps

إدارة أولوية المهام في Linux

لشرح آلية إدارة العمليات في Linux بصورة أوضح، لا بد من التطرق إلى أولوية العمليات وكيفية تغييرها. تخيّل موقفاً تُشغّل فيه عدة عمليات في آنٍ واحد، وأن CPU مثقل بالمهام. للتحكم في الموارد بفاعلية في هذه الحالة، تحتاج إلى تعديل أولوية المهام الجارية. لكل عملية في Linux قيمة أولوية تساعد النواة على ترتيب المهام حسب الأهمية. تتراوح قيم الأولوية بين -20 و19، إذ تمثل 19 أدنى الأولويات و-20 أعلاها. العملية ذات الأولوية الأعلى تحصل على وقت أكبر من CPU مقارنةً بغيرها. يُشار إلى قيم الأولوية عادةً بـ«قيم nice»، وكلما انخفضت قيمة nice، كانت الأولوية أعلى.

يمكنك استخدام الأمرين nice و renice لتوزيع موارد النظام بكفاءة.

لكن قبل تعديل أولوية العمليات، لنستعرض أولاً حالة الاستخدام الأولى للأمر ps.

  • عرض الأولوية الحالية لجميع العمليات باستخدام الأمر ps:

يسرد هذا الأمر جميع العمليات مع معرفات العملية (PID) وأسماء الأوامر والأولوية الحالية (قيمة nice):

 

ps -eo pid,cmd,nice

الحصول على أولوية جميع العمليات باستخدام أمر ps

  • بدء عملية بأولوية عالية افتراضية باستخدام أمر nice:

يمكنك بدء عملية بالأولوية التي تختارها باستخدام هذا الأمر:

nice -n [priority] [command]

استبدل [priority] بالقيمة السالبة التي تمثل مستوى الأولوية، و[command] بالأمر الذي تريد تنفيذه.

إليك مثالاً:

بدء عملية بأولوية عالية افتراضية

  • تغيير أولوية عملية قيد التشغيل:
renice -n [priority] -p [PID]

استبدل [PID] بمعرف العملية التي تريد التعامل معها.

إذا كنت تبحث عن جهاز Linux قوي لتنفيذ جميع أنواع المهام، فإن Linux VPS هو الخيار الأمثل لك. Cloudzy توفر Cloudzy خططاً متعددة لـ Linux VPS مع التوزيعة التي تختارها مثبتةً مسبقاً. بفضل مزايا عديدة كالدعم على مدار الساعة طوال أيام الأسبوع، وسياسة استرداد المبالغ خلال 30 يوماً، وضمان وقت تشغيل بنسبة 99.95%، تمكنت Cloudzy من إبقاء الأسعار منخفضة. تبدأ أسعار Linux VPS لدينا من 4.95 دولار فقط في الشهر.

استضافة Linux VPS

احصل على VPS اقتصادي أو متميز يعمل بنظام Linux لاستضافة موقعك الإلكتروني أو سطح المكتب البعيد، بأفضل الأسعار المتاحة. يعمل VPS على Linux KVM لكفاءة أعلى، ويستند إلى أجهزة قوية مع تخزين NVMe SSD لسرعة أكبر.

اقرأ المزيد

خلاصة

خلاصة القول، إتقان إدارة العمليات والتحكم في النظام أمر ضروري لمسؤولي الأنظمة ومحبي Linux الراغبين في التعمق أكثر، والمستخدمين العاديين على حدٍّ سواء. إن فهم إمكانيات أمر ps ووظائفه يُسهّل عليك تعلم إدارة العمليات، ولهذا تناول هذا المقال أبرز حالات استخدام أمر ps إلى جانب تقديم مقدمة لعمليات Linux.

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

ما هو أمر ps aux في Linux؟

أمر ps aux هو أحد أكثر الأوامر شيوعاً في Linux للحصول على معلومات حول العمليات الجارية. يوفر قائمة شاملة بالعمليات بتنسيق سهل القراءة، تشمل معرفات العمليات (PIDs) واستخدام CPU والذاكرة وحالات التنفيذ وتفاصيل أساسية أخرى.

ما نوعا العمليات في Linux؟

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

كيف يمكنني عرض قائمة العمليات الجارية على نظام Linux؟

يمكن الاطلاع على قائمة العمليات الجارية على نظام Linux باستخدام أوامر مثل ps أو top أو htop. على سبيل المثال، يوفر أمر ps aux في Linux معلومات تفصيلية حول جميع العمليات الجارية.

مشاركة

المزيد من المدونة

تابع القراءة.

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

أفضل التطبيقات ذاتية الاستضافة التي يمكن تشغيلها مع Cosmos Cloud: الملفات والوسائط وكلمات المرور والأتمتة والمزيد!

Maybe قمت بإعداد Cosmos Cloud وتريد الآن معرفة التطبيقات التي تتناسب معه، أو ربما لم تحسم قرارك بشأن Cosmos بعد وتريد فقط معرفة مدى ملاءمته لسير عملك

نيك سيلفرنيك سيلفر قراءة في ١٦ دقيقة
غلاف مقارنة Portainer مقابل Cosmos Cloud لإدارة تطبيقات Docker مع مخطط إعداد هجين وكتل neon ops و access.
الخوادم ونظام التشغيل

Portainer مقابل Cosmos Cloud: الأنسب لإدارة تطبيقات Docker

إذا كنت تعرف Docker وتريد الطريقة الأنظم لتشغيل مجموعة تطبيقات متنامية، فهذه الإجابة المختصرة في المقارنة بين Portainer و Cosmos Cloud. Portainer هو الخيار الأقوى لـ

نيك سيلفرنيك سيلفر ١٤ دقيقة قراءة
رسم توضيحي لمقارنة Cosmos Cloud مقابل CasaOS مقابل Umbrel يُظهر ثلاثة مسارات ذاتية الاستضافة داخل عالم شبكة سحابية مجردة.
الخوادم ونظام التشغيل

Cosmos Cloud مقابل CasaOS مقابل Umbrel: أي منصة ذاتية الاستضافة تناسب إعدادك؟

الإجابة المختصرة هي أن CasaOS لا يزال الأسهل للبدء به، و Umbrel يتميز بأنظف تجربة منسّقة، بينما Cosmos Cloud يصبح الخيار الأمثل حين تريد تحكمًا أدق في

نيك سيلفرنيك سيلفر ١١ دقيقة قراءة

هل أنت مستعد للنشر؟ يبدأ من ٢٫٤٨ دولار/شهر.

سحابة مستقلة منذ ٢٠٠٨. AMD EPYC، NVMe، 40 Gbps. ضمان استرداد المبلغ لمدة ١٤ يومًا.