كيفية بدء تشغيل Linux Command في الخلفية وفصل العملية في Terminal

instagram story viewer

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

عندما ترتبط عملية ما بمحطة طرفية ، فقد تحدث مشكلتان:

  1. تمتلئ محطة التحكم الخاصة بك بالكثير من بيانات الإخراج ورسائل الخطأ / التشخيص.
  2. في حالة إغلاق الجهاز ، سيتم إنهاء العملية جنبًا إلى جنب مع العمليات الفرعية.

للتعامل مع هاتين المسألتين ، تحتاج إلى فصل العملية تمامًا عن محطة التحكم. قبل أن ننتقل فعليًا لحل المشكلة ، دعونا نغطي بإيجاز كيفية تشغيل العمليات في الخلفية.

كيفية بدء عملية Linux أو الأمر في الخلفية

إذا كانت هناك عملية قيد التنفيذ بالفعل ، مثل ملف مثال قيادة القطران أدناه ، ببساطة اضغط السيطرة + Z لإيقافه ثم أدخل الأمر bg لمواصلة تنفيذه في الخلفية كوظيفة.

يمكنك عرض جميع وظائف الخلفية الخاصة بك عن طريق الكتابة وظائف. ومع ذلك ، فإن ستدين, stdout, ستدير لا يزالون منضمين إلى المحطة.

tar -czf $ home.tar.gz. $ bg. وظائف $. 
قم بتشغيل Linux Command في الخلفية
قم بتشغيل Linux Command في الخلفية

يمكنك أيضًا تشغيل عملية مباشرة من الخلفية باستخدام علامة العطف ، & إشارة.

tar -czf $ home.tar.gz. & وظائف $.
ابدأ عملية Linux في الخلفية
ابدأ عملية Linux في الخلفية

ألق نظرة على المثال أدناه ، على الرغم من أن ملف أمر القطران تم بدء العمل كوظيفة في الخلفية ، ولا يزال يتم إرسال رسالة خطأ إلى الجهاز الطرفي مما يعني أن العملية لا تزال متصلة بمحطة التحكم.

tar -czf $ home.tar.gz. & وظائف $.
عملية Linux قيد التشغيل في رسالة الخلفية
عملية Linux قيد التشغيل في رسالة الخلفية

استمر في تشغيل عمليات Linux بعد الخروج من الوحدة الطرفية

سوف نستخدم تبرأ من الأمر ، يتم استخدامه بعد بدء العملية ووضعها في الخلفية ، والعمل هو إزالة وظيفة shell من وظائف القائمة النشطة في shell ، وبالتالي لن تستخدم fg, bg أوامر في تلك الوظيفة بالذات بعد الآن.

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

اقترح قراءة:5 طرق للحفاظ على جلسات وعمليات SSH عن بعد قيد التشغيل

دعنا نلقي نظرة على المثال أدناه لاستخدام استنكر وظيفة مدمجة باش.

قوالب $ sudo rsync / * / var / www / html / files / & وظائف $. $ disown -h٪ 1. وظائف $.
استمر في تشغيل عملية Linux بعد إغلاق الوحدة الطرفية
استمر في تشغيل عملية Linux بعد إغلاق الوحدة الطرفية

تستطيع ايضا استخذام nohup الأمر ، والذي يمكّن أيضًا العملية من الاستمرار في العمل في الخلفية عند خروج المستخدم من shell.

قوالب nohup tar -czf iso.tar.gz $ / * & وظائف $.
ضع عملية Linux في الخلفية بعد إغلاق Shell
ضع عملية Linux في الخلفية بعد إغلاق Shell

افصل عمليات Linux من وحدة التحكم

لذلك ، لفصل العملية تمامًا عن محطة التحكم ، استخدم تنسيق الأمر أدناه ، وهذا أكثر فعالية لواجهة المستخدم الرسومية (واجهة المستخدم الرسومية) تطبيقات مثل Firefox:

فايرفوكس $ / dev / null &

في Linux ، /dev/null هو ملف جهاز خاص يقوم بكتابة (التخلص من) جميع البيانات المكتوبة إليه ، في الأمر أعلاه ، تتم قراءة المدخلات ، وإرسال الإخراج إلى /dev/null.

اقترح قراءة:10 أمثلة لأمر الشاشة لفصل جلسات المحطة الطرفية

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

الأهم من ذلك ، لأية أسئلة أو ملاحظات حول هذا الموضوع ، تواصل معنا باستخدام نموذج التعليقات أدناه.

Teachs.ru