ذكري المظهر

قيادة لينكس nohup

nohup - Run Commands in the Background - Linux CLI

nohup - Run Commands in the Background - Linux CLI

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

Anonim

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

عادة ، عندما تقوم بتشغيل برنامج عبر SSH ، إذا انخفض الاتصال أو قمت بتسجيل الخروج ، يتم إنهاء الجلسة ، وستتوقف جميع العمليات المنفذة من الجهاز. هذا هو المكان الذي يأتي فيه أمر nohup سهل الاستخدام. يتجاهل جميع إشارات hangup ، وستستمر العملية في العمل.

كيفية استخدام قيادة nohup

بناء جملة الأمر nohup كالتالي:

nohup COMMAND

لا يقبل الأمر أي خيارات أخرى باستثناء المعيار --help و --help --version .

دعنا نلقي نظرة على المثال التالي:

nohup mycommand

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

mycommand يقوم mycommand الأمر mycommand في المقدمة ويعيد توجيه إخراج الأمر إلى ملف nohup.out . يتم إنشاء هذا الملف في دليل العمل الحالي. إذا لم يكن لدى المستخدم الذي يقوم بتشغيل الأمر أذونات الكتابة إلى دليل العمل ، فسيتم إنشاء الملف في الدليل الرئيسي للمستخدم.

إذا قمت بتسجيل الخروج أو أغلق الجهاز ، فلن يتم إنهاء العملية.

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

استخدام nohup في المقدمة ليس مفيدًا للغاية لأنك لن تكون قادرًا على التفاعل مع shell حتى يكتمل الأمر.

لتشغيل الأمر في الخلفية ، قم بإلحاق الرمز & في نهاية الأمر:

nohup mycommand &

يتضمن الإخراج معرف مهمة shell (محاطًا بأقواس) ومعرف العملية:

25177

يمكنك استخدام معرف الوظيفة لإحضار الأمر إلى المقدمة باستخدام الأمر fg .

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

kill -9 25132

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

بشكل افتراضي ، يعيد nohup توجيه إخراج الأمر إلى ملف nohup.out . إذا كنت ترغب في إعادة توجيه الإخراج إلى ملف مختلف ، استخدم إعادة توجيه shell القياسية.

على سبيل المثال ، لإعادة توجيه الإخراج القياسي والخطأ القياسي إلى mycommand.out ستستخدم:

nohup mycommand > mycommand.out 2>&1 &

لإعادة توجيه الإخراج القياسي والخطأ القياسي إلى ملفات مختلفة:

nohup mycommand > mycommand.out 2> mycommand.err &

البدائل

هناك العديد من البرامج البديلة التي يمكنك استخدامها لتجنب أمر يتم إنهائه عند إغلاق الجهاز أو فصل الاتصال.

شاشة

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

Tmux

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

تبرأ من

disown عبارة عن أداة مدمجة تزيل مهمة shell من وظيفة التحكم في shell. على عكس nohup ، يمكنك استخدام disown في العمليات الجارية أيضًا.

استنتاج

nohup يسمح لك بمنع الأوامر من الإنهاء عند تسجيل الخروج أو الخروج من الجهاز.

محطة nohup