حرف J

إدارة المهام

Job Control

آخر تحديث: 2026-10-12
مستوى الشرح اختر المستوى التقني المناسب لك

الشرح المبسط

تخيل أنك طباخ في مطعم ولديك عدة طلبات يجب إنجازها في نفس الوقت. لا يمكنك التركيز إلا على إعداد طبق واحد أمامك، بينما تترك الحساء يغلي ببطء في الخلفية. ميزة إدارة المهام (Job Control) في نظام لينكس (Linux) تعمل بنفس الطريقة. إنها تسمح لك بتشغيل برنامج أو أمر معين وتركه يعمل في الخلفية (Background) بينما تستمر في استخدام سطر الأوامر (Command Line) لتنفيذ أوامر أخرى في الواجهة الأمامية (Foreground). وإذا احتجت، يمكنك دائما إيقاف أي مهمة مؤقتا أو إعادتها للواجهة متى شئت.

الشرح التقني المتقدم

تعتبر ميزة إدارة المهام (Job Control) من أهم الخصائص التي توفرها صدفة سطر الأوامر (Shell) في نظام لينكس (Linux). فهي تمنحك القدرة على التحكم الدقيق في العمليات (Processes) وتوجيهها للعمل في الخلفية أو استدعائها للواجهة الأمامية، مما يسمح لك بتنفيذ مهام متعددة في نفس الجلسة (Session) دون الحاجة لفتح نوافذ طرفية (Terminal) جديدة.

آلية عمل الواجهة الأمامية والخلفية

عندما تقوم بتنفيذ أي أمر في لينكس، فإنه يعمل افتراضيا في الواجهة الأمامية (Foreground)، مما يعني أن سطر الأوامر سيكون معطلا ومحجوزا لهذا الأمر حتى ينتهي. ولكن باستخدام إدارة المهام، يمكنك تعليق هذا الأمر أو نقله ليعمل بصمت في الخلفية (Background)، مما يحرر سطر الأوامر لتلقي تعليمات جديدة.

يتم تعيين رقم وظيفة (Job ID) فريد لكل مهمة، يختلف عن معرف العملية (PID)، لتسهيل إدارتها داخل الجلسة الحالية.

إدارة العمليات عبر الأوامر الأساسية

لبدء أمر معين في الخلفية مباشرة، نستخدم علامة العطف (&) في نهاية الأمر:

sleep 100 &

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

  • استخدم الاختصار Ctrl+Z لإيقاف المهمة الحالية مؤقتا (Suspend).
  • الأمر bg يقوم بنقل المهمة الموقوفة لتستكمل عملها في الخلفية (Background).
  • الأمر fg يقوم باستدعاء المهمة من الخلفية إلى الواجهة الأمامية (Foreground).
  • الأمر jobs يعرض لك قائمة بجميع المهام الحالية وأرقامها (Job IDs) وحالتها (تعمل أو متوقفة).

ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)

لا تعتمد على إدارة المهام (Job Control) لتشغيل الخدمات الأساسية التي يجب أن تستمر بعد تسجيل الخروج. عند إغلاق الطرفية (Terminal)، سيتم إنهاء جميع المهام المرتبطة بها. للعمليات طويلة الأمد، يفضل استخدام أدوات مثل tmux أو screen أو تشغيل العملية كخدمة (Service) باستخدام systemd.

المصادر المعتمدة :