ذكري المظهر

كيفية تشغيل أوامر لينكس في الخلفية

تثبيت كالي لينكس على هاتف أندرويد دون Root يعمل 100٪ #Kali_Linux

تثبيت كالي لينكس على هاتف أندرويد دون Root يعمل 100٪ #Kali_Linux

جدول المحتويات:

Anonim

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

ماذا لو استغرق الأمر وقتًا طويلاً للانتهاء ، وتريد تشغيل أوامر أخرى في هذه الأثناء؟ لديك عدة خيارات تحت تصرفك. الخيار الأكثر وضوحا ومباشرة هو بدء جلسة shell جديدة وتشغيل الأمر فيها. خيار آخر هو تشغيل الأمر في الخلفية.

عملية الخلفية هي عملية / أمر يتم تشغيله من محطة طرفية ويتم تشغيله في الخلفية ، دون تدخل من المستخدم.

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

قم بتشغيل أمر Linux في الخلفية

لتشغيل أمر في الخلفية ، أضف رمز علامة الضم ( & ) في نهاية الأمر:

command &

ستتم طباعة معرّف مهمة shell (محاط بأقواس) ومعرف العملية على الجهاز:

25177

يمكنك تشغيل عدة عمليات في الخلفية في نفس الوقت.

ستستمر عملية الخلفية في كتابة الرسائل إلى المحطة التي استدعيت منها الأمر. لمنع رسائل stdout و stderr استخدم بناء الجملة التالي:

command > /dev/null 2>&1 &

>/dev/null 2>&1 تعني إعادة توجيه stdout إلى /dev/null و stderr إلى stdout .

استخدم الأداة المساعدة Jobs لعرض حالة جميع الوظائف التي تم إيقافها والخلفية في جلسة العمل الحالية:

jobs -l

يتضمن الإخراج رقم المهمة ومعرف العملية وحالة المهمة والأمر الذي بدأ المهمة:

+ 25177 Running ping google.com &

لإحضار عملية خلفية إلى المقدمة ، استخدم الأمر fg :

fg

fg %1

لإنهاء عملية الخلفية ، استخدم الأمر kill متبوعًا بمعرف العملية:

kill -9 25177

نقل عملية المقدمة إلى الخلفية

لنقل عملية المقدمة قيد التشغيل في الخلفية:

  1. أوقف العملية عن طريق كتابة Ctrl+Z حرك العملية الموقوفة إلى الخلفية بكتابة bg .

الحفاظ على العمليات الخلفية قيد التشغيل بعد خروج Shell

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

تتمثل إحدى الطرق في إزالة المهمة من عنصر التحكم في الوظيفة باستخدام shell disown shell:

disown

disown %1

تأكد من إزالة المهمة من جدول الوظائف النشطة باستخدام الأمر jobs -l . لسرد كافة العمليات الجارية ، بما في ذلك الأمر disowned ، استخدم الأمر ps aux .

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

ينفذ أمر nohup برنامجًا آخر محددًا كوسيطة ويتجاهل جميع SIGHUP (hangup). SIGHUP هي إشارة يتم إرسالها إلى العملية عند إغلاق محطة التحكم الخاصة بها.

لتشغيل أمر في الخلفية باستخدام أمر nohup ، اكتب:

nohup command &

تتم إعادة توجيه إخراج الأمر إلى ملف nohup.out .

nohup: ignoring input and appending output to 'nohup.out'

البدائل

هناك عدد من البرامج التي تتيح لك عقد جلسات تفاعلية متعددة في نفس الوقت.

شاشة

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

Tmux

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

استنتاج

لتشغيل أمر في الخلفية ، قم بتضمين & في نهاية الأمر.

عندما تقوم بتشغيل أمر في الخلفية ، لن تضطر إلى الانتظار حتى ينتهي قبل أن تتمكن من تنفيذ أمر آخر.

nohup fg bg Jobs disown terminal