مدخل تمهيدي: أهمية مراقبة العمليات داخل بيئة لينكس
يشكل استيعاب العمليات الجارية وفهم سلوكها حجر الأساس لكل من يتولى مهام إدارة خوادم لينكس واستكشاف أخطائها التشغيلية وإصلاحها. يقدم هذا الدليل التطبيقي تحليلاً متدرجاً لآليات عمل الأداة القياسية ps وأهم معاملاتها البرمجية؛ حيث نناقش الفروق الجوهرية بين الصياغتين الشائعتين ps aux وps -ef، مروراً بأساليب تنقية النتائج وفرز استهلاك الموارد عبر الطرفية بصورة عملية واحترافية.
1. البداية مع الأساسيات: استعراض مهام الجلسة النشطة واستخدامات ps الأولية
تُصنّف أداة ps كواحدة من أقدم وأقوى الوسائل المدمجة لمتابعة المهام قيد التشغيل وتحديد حالتها اللحظية.
عند تنفيذ الأمر مجرداً دون تمرير أي وسائط إضافية، يقتصر الخرج على عرض العمليات المرتبطة مباشرة بجلسة الطرفية الحالية.
وتوفر قائمة النتائج معلومات مختصرة تشمل معرف العملية الفريد PID، ورقم الطرفية المقترنة TTY، وإجمالي الوقت التراكمي المستهلك من المعالج TIME، فضلاً عن اسم الملف التنفيذي CMD.
⚙️ [أبرز الخيارات الشائعة]
-e, -A : استخراج سجل شامل لكل مهمة تعمل حالياً عبر كامل النظام.-f : الانتقال إلى وضع العرض الموسع (Full-format) للكشف عن بيانات الهوية والمسار والروابط الأبوية.-u : تصفية المخرجات لعرض أنشطة مستخدم محدد أو استعراض نمط الموارد التفصيلي.-ef : الدمج القياسي الأشهر لمسح جميع العمليات على مستوى الخادم بصيغة مفصلة وواضحة.aux : صياغة عريقة موروثة من بيئات BSD تبرز نسب استهلاك طاقة المعالجة وحجم الذاكرة المستغل.-p : استهداف عملية بعينها والاستعلام عنها مباشرة بواسطة رقم المعرف الخاص بها (PID).

عند تمرير الخيار -f للأمر ps -f، تتحول المخرجات إلى تقرير موسع يقدم تفاصيل بنيوية بالغة الأهمية.
فإلى جانب الحقول المعتادة، ستشاهد اسم الحساب المشغل للمهمة (UID)، ورقم معرف العملية الأب (PPID)، ولحظة إطلاق العملية (STIME)، بالإضافة إلى المسار البرمجي المكتمل متضمناً كافة الوسائط الممررة عند البدء.
وتبرز فائدة حقل PPID بالتحديد عندما تحتاج إلى تتبع السلسلة الهرمية وتحديد العملية الجذرية المسؤولة عن استدعاء مهمة فرعية معينة.

2. مدرسة BSD في التحليل: مسح العمليات الشامل عبر ps aux
تعتمد صيغة ps aux على تقاليد أنظمة BSD (دون إضافة شرطة تسبق الخيارات)، وتتيح لمسؤول النظام الاطلاع الشامل على ما يجري داخل الخادم تحت أسماء كافة المستخدمين.
ونظراً لكثافة السجلات الناتجة في الأنظمة الحية، استعنا بخط الأنابيب head -n 15 لحصر المعاينة في أول 15 سجلاً فقط.
يعبر العمود USER عن مالك المهمة، بينما يوضح العمودان %CPU و%MEM حصتها المئوية من قدرة المعالج وسعة الذاكرة بالتوالي.
ويشير الحقل VSZ إلى حجم الذاكرة الافتراضية المحجوزة بالكيلوبايت، في مقابل RSS الذي يمثل الذاكرة الفيزيائية الفعلية المشغولة حالياً داخل ذاكرة الوصول العشوائي.
أما حالة العملية اللحظية فتظهر تحت عمود STAT برموز دقيقة (كالحرف R للمهام النشطة، وS لوضع السكون القابل للمقاطعة، وs للدلالة على رأس الجلسة).
ويختتم التقرير بحقول توضح زمن الانطلاق START، ووقت المعالجة المستنفد TIME، والتعليمة التنفيذية الكاملة COMMAND.

3. المعيار القياسي لأنظمة UNIX/POSIX: تتبع التسلسل الهرمي عبر ps -ef
يمثل الأمر ps -ef الصيغة المعيارية المتوافقة مع مواصفات UNIX وPOSIX الصارمة التي توجب وجود الشرطة التمهيدية، وهي تقدم تحليلاً شاملاً لكافة مهام النظام بصيغة غنية بالتفاصيل.
ولتفادي التمرير الطويل داخل نافذة الطرفية، ربطنا الاستعلام بالأمر head -n 15 لعرض الصفوف الأولى بسهولة.
تتوزع بيانات الأعمدة لتشمل: الحساب المالك للمهمة UID، ومعرف العملية الذاتي PID، ورقم العملية المصدرية الحاضنة PPID.
كما يوضح الحقل C معدل استهلاك المعالج لحسابات الجدولة، متبوعاً بتوقيت التشغيل STIME، ونقطة الاتصال الطرفية TTY، والزمن الفعلي لاستهلاك المعالجة TIME، والمسار التنفيذي CMD.
وتوفر مقارنة PID بـ PPID رؤية دقيقة لعلاقات التبعية والتوليد بين مختلف العمليات في البيئة.

عند الرغبة في تمثيل هذه التبعيات بصرياً، يقدم الخيار ps -ef --forest شجرة هرمية تبرز تسلسل توالد العمليات وترابطها.
ولقراءة بدايات هذا الهيكل المتشعب بيسر، تم توجيه المخرجات عبر الأنبوب نحو head -n 20.
ستلاحظ تحت عمود CMD وجود محاذاة مدرجة مصحوبة بالرمز \_ لتمييز المهام الفرعية المنبثقة عن المهام الأبوية الحاضنة لها.
تعد هذه الشجرة الهيكلية أداة لا غنى عنها عند تعقب البرامج الخفية (Daemons) أو اكتشاف العمليات الفرعية العالقة وتحديد الكيان المتسبب في إطلاقها.

4. مهارات ميدانية متقدمة: تصفية المهام وترتيب العمليات حسب استهلاك الموارد
لتطبيق عمليات التصفية والفرز عملياً، نقوم بإنشاء مهمة اختبارية في الخلفية تظل معلقة لمدة 300 ثانية باستخدام الأمر sleep 300 &.

يتيح تنفيذ ps aux | grep [s]leep استغلال تقنية الأقواس المربعة لتفادي تضمين أمر grep ذاته ضمن النتائج المعروضة، مما يعزل العملية المستهدفة بنقاء تام.
وبالنظر إلى الخرج الناتج، تظهر تفاصيل مهمة sleep 300 المستحدثة بوضوح مع معرفها الرقمي (173)، وحالتها (S)، وتوقيت انطلاقها دون أي ضجيج إضافي.

يعمل الخيار ps aux --sort=-%mem على إعادة ترتيب القوائم تنازلياً وفقاً لنسبة استغلال الذاكرة (%MEM)، حيث تضمن إشارة السالب - ظهور البرامج الأكثر استهلاكاً في صدارة الخرج.
وعبر دمجه مع head -n 10، يتمكن المدير من كشف أكثر 10 عمليات تضغط على سعة الذاكرة الفيزيائية والتشخيص الفوري لأي تسريب برمجي.

على النحو ذاته، يسلط الأمر ps aux --sort=-%cpu الضوء على أكثر المهام استنزافاً لطاقة المعالجة (%CPU) بترتيب تنازلي سريع.
ويساعد استخدام الأنبوب مع head -n 10 في رصد مسببات ارتفاع حمل السيرفر وتحديد مكامن الاختناق البرمجي بدقة فائقة.

بعد اكتمال التجارب، نحافظ على استقرار موارد النظام بإيقاف المهمة الخلفية الاختبارية نهائياً من خلال استدعاء pkill sleep.

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