من المهم فهم أليه عمل العمليات التي يتم تنفيذها في بيئة لينكس والتي تعمل حاليا أمامك forground أو في الخلفية background.
لكن كيف يمكن التحكم بها ؟
في بيئة عمل لينكس حين تقوم بتنفيذ أي برنامج يتم تلقائيا إنشاء رقم خاص ID(PID) ليتم تشغيل هذه العملية في الخلفية .
لنأخذ مثلا بسيطا :
أمر curl حين ترسل طلب لتنزيل ملف مضغوط من نوع zip من الانترنت فسيتم تشغيله ليعمل أمامك forground وسيتم عرض المخرجات outputs في الترمنال .
هناك اختصارات معينه للتحكم بالعمليات الجارية forgound او background
CTRL+Z : إيقاف العملية الجارية حاليا.
CTRL+C : قتل العملية الجارية حاليا وتفريغ الذاكرة .
العمليات الجارية في الواجهه Linux Forground Process
العملية حين تبدأها من سطر الأوامر termianl هي تلقائيا تعمل ك forground process .
forground process لن تسمح لك بإستخدام سطر الاوامر إلا إذا انتهت هذه العملية.
من المهم أيضا ملاحظة أن أي عملية يتم إنشائها من خلال الترمنال وفي حالة تم إغلاق الترمنال يتم إنهاء العملية.
يمكن تخيل الموضوع كالتالي مايتم تشغيله عبر الترمنال يمكن أن تعتبره كفرع والترمنال هو الجذع فإن أنت قطعت الفرع لا تتأثر الشجرة ولكن إن أنت قطعت جذع الشجرة ذاتها فانت بالتالي فأنت قضيت على الغصن .
لنقل أنك شغلت مثلا الامر التالي :
كود:
sleep 10000
الآن لدينا عدة خيارات إذا أردنا أن نعمل على الترمنال إما أن نفتح لسان جديد في الترمنال أو الغاء أو إيقاف العملية الجارية على الترمنال عبر CTRL+Z.
لعرض قائمة بالعمليات الجارية او المتوقفة
كود:
jobs -l
لبدأ أحدى العمليات الموضوعة في قائمة jobs او جلب العمليات العاملة في الخلفية background => forground
كود:
fg $ %4
العمليات العاملة في الخلفية background process
وهي العمليات التي تعمل في الخلفية ولن تراها إلا إذا أردت ذالك ويمكنك أن تنفيذ أي عملية ووضعها في الخلفية عبر إضافة & في نهاية الأمر .
مثال
كود:
sleep 50000 &
يمكنك أن توقف أي job عامل في الخلفية مباشرة عبر
كود:
bg %2
في أمان الله ^_^
رابط الموضوع الاصلي
How to Work with Foreground and Background Process in Linux
تعليق