الشرح المبسط
الشرح التقني المتقدم
تعتبر ميزة إدارة المهام (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.