خصم 50% جميع الخطط، لفترة محدودة. ابتداء من $2.48/mo
8 دقائق متبقية
الخوادم ونظام التشغيل

كيف يعمل أمر nohup في Linux - بناء الجملة وحالات الاستخدام والأمثلة

أدا لوفجود By أدا لوفجود 8 دقائق قراءة تم التحديث في 14 يوليو 2024
أمر nohup

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

فهم بناء جملة Linux nohup

الأمر nohup سهل الاستخدام ومباشر. فهو يسمح لك بتشغيل الأوامر أو البرامج النصية في الخلفية بحيث تكون متأكدًا من استمرار تنفيذها حتى بعد تسجيل الخروج من الجهاز. إليك كيفية استخدامه:

nohup [command] [arguments] &

يجب عليك استبدال [يأمر] باستخدام الأمر أو البرنامج النصي الذي تريد تشغيله. و [دعوى] هي أي وسيطات أو خيارات يتطلبها الأمر. ال & يرسل الرمز الأمر للتشغيل في الخلفية. دعونا نرى مثالا:

nohup myscript.sh &

في هذا المثال، myscript.sh هو برنامج نصي bash سيستمر في العمل حتى لو قمت بإغلاق الجهاز. سيتم إعادة توجيه الإخراج إلى ملف اسمه nohup.out بشكل افتراضي ما لم تحدد مسارًا آخر.

استكشاف خيارات nohup

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

nohup –-help 
nohup --version

يمنحك هذان الأمران بعض المعلومات المفيدة من خلال إظهار رسالة المساعدة وإصدار nohup.

تشغيل عملية باستخدام الأمر nohup

إذا كنت تريد تشغيل عملية باستخدام الأمر nohup، فيمكنك اتباع نفس البنية التي شرحتها في القسم الأخير:

nohup [command]

إذا كنت تريد تشغيل عملية في الخلفية، فما عليك سوى إضافة & إلى نهاية أمرك.

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

الآن، ماذا لو كنت تريد تشغيل أكثر من عملية في الخلفية باستخدام الأمر nohup؟

nohup bash -c '[command A] && [command B]' &

يستبدل [الأمر أ] و [الأمر ب] بالأوامر التي تريد تشغيلها في الخلفية. تخيل أنك تريد تحديث حزم النظام أولاً ثم تنظيف الملفات غير الضرورية وتريد القيام بذلك باستخدام الأمر nohup:

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

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

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

سيتم إعادة توجيه مخرجات هذه العملية إلى nohup.out بشكل افتراضي. ولكن ماذا لو كنت تريد تلقي الإخراج في مسار آخر؟ وإليك كيف يمكنك القيام بذلك:

nohup [command] > [/path/to/new/output.txt]

تذكر استبدال القيم الموجودة في [] مع الأمر المطلوب ومسار الملف.

الجمع بين nohup والأوامر الأخرى

يمكن دمج nohup مع أوامر ومسارات أخرى لإنشاء سلاسل أوامر قوية. دعونا نرى مثالا على ذلك:

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

هنا، يجد يتم استخدام الأمر للبحث عن ملفات السجل و grep يتم استخدامه للبحث عن المصطلح "خطأ". تتم إعادة توجيه الإخراج المدمج إلى error_logs.txt.

في هذا القسم، قمنا بتغطية الخيارات وحالات الاستخدام الأكثر شيوعًا لأمر nohup. من خلال إتقان هذه التعليمات، يمكنك استخدام nohup بشكل فعال لتشغيل عمليات Linux في الخلفية.

الأخطاء الشائعة واستكشاف الأخطاء وإصلاحها

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

تم رفض الإذن

يحدث هذا الخطأ عندما لا يمتلك البرنامج النصي أو الأمر الذي تحاول تشغيله إذن التنفيذ. يبدو إخراج الخطأ كما يلي: nohup: فشل في تشغيل الأمر "myscript.sh": تم رفض الإذن

لحل هذه المشكلة، عليك التأكد من أن البرنامج النصي أو الأمر لديه الأذونات الصحيحة. يمكنك إضافة إذن التنفيذ باستخدام chmod يأمر:

chmod +x myscript.sh 
nohup ./myscript.sh &

لم يتم العثور على الأمر

يحدث هذا الخطأ إذا لم يتم العثور على الأمر أو البرنامج النصي في الموقع المحدد أو لم يكن متوفرًا في PATH الخاص بك. يبدو إخراج الخطأ كما يلي: Nohup: فشل في تشغيل الأمر "myscript.sh": لا يوجد مثل هذا الملف أو الدليل

لحل هذا الخطأ يجب عليك التحقق من وجود الأمر أو البرنامج النصي وفي الدليل الصحيح. قد تحتاج إلى توفير المسار المطلق للبرنامج النصي:

nohup /path/to/myscript.sh &

تأكد أيضًا من تثبيت الأمر وتوافره في المسار الخاص بك.

لا يوجد إخراج

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

nohup myscript.sh > output.log 2>&1 &

على سبيل المثال، يقوم هذا الأمر بإعادة توجيه كل من الإخراج القياسي والخطأ القياسي إلى ملف مسمى output.log.

البرنامج النصي لا يعمل في الخلفية

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

عملية معلقة أو غير مستجيبة

قد تتوقف العملية التي بدأت باستخدام nohup أو تصبح غير مستجيبة. يمكن أن يحدث هذا إذا كانت العملية تنتظر الإدخال أو إذا كانت هناك مشكلات تتعلق بالموارد التي تحاول الوصول إليها. هناك حلان لهذه المشكلة:

  • التحقق من المدخلات المطلوبة: تأكد من أن الأمر لا يتطلب أي إدخال تفاعلي.
  • قضايا الموارد: تأكد من أن الأمر لديه حق الوصول إلى الموارد الضرورية (مثل الملفات والشبكة).

الكتابة فوق nohup.out

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

من خلال التعرف على خطأ nohup الشائع وحلوله، يمكنك استخدام أمر nohup دون أي مشكلة.

خاتمة

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

إذا كنت أحد مطوري Linux الذين يتطلعون إلى تحقيق أقصى استفادة من تجربة Linux الخاصة بك، ففكر في الترقية إلى مطور موثوق لينكس فس. توفر خدمة VPS المستندة إلى السحابة لدينا دعمًا على مدار الساعة طوال أيام الأسبوع وضمان وقت تشغيل بنسبة 99.95% مما يعني أن تطبيقاتك تعمل بسلاسة في جميع الأوقات ويمكنك الحصول على المساعدة في أي وقت من اليوم. بفضل البنية التحتية القوية والموارد الموثوقة، تم تصميم VPS الخاص بنا لتلبية متطلبات مبرمجي Linux. بالإضافة إلى ذلك، يمكنك تثبيت توزيعة Linux المفضلة لديك مسبقًا، مما يجعل الإعداد سريعًا وسهلاً. انتقل بمشروعات Linux الخاصة بك إلى المستوى التالي باستخدام VPS الذي يوفر لك القوة والمرونة التي تحتاجها.

التعليمات

ما هو الفرق بين nohup و &?

nohup يمنع إنهاء العملية عندما يقوم المستخدم بتسجيل الخروج، بينما & يدير عملية في الخلفية. استخدام nohup يضمن استمرار العملية بعد تسجيل الخروج، ودمجها مع & يسمح لها بالعمل في الخلفية.

لماذا يتم استخدام نوهوب؟

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

ما هو ملف nohup ؟

ال nohup.out الملف هو ملف الإخراج الافتراضي حيث يقوم Nohup بإعادة توجيه الإخراج القياسي والخطأ القياسي للأمر. إذا لم يتم تحديد ملف إخراج آخر، فسيتم حفظ إخراج الأمر فيه nohup.out في الدليل الحالي.

يشارك

المزيد من المدونة

استمر في القراءة.

أفضل التطبيقات ذاتية الاستضافة التي يمكنك تشغيلها باستخدام صورة غلاف Cosmos Cloud مع لوحات التطبيقات حول لوحة معلومات Cosmos.
الخوادم ونظام التشغيل

أفضل التطبيقات ذاتية الاستضافة التي يمكنك تشغيلها باستخدام Cosmos Cloud: الملفات والوسائط وكلمات المرور والأتمتة والمزيد!

ربما قمت بإعداد Cosmos Cloud وتريد الآن معرفة التطبيقات التي تتوافق بشكل جيد معها، أو ربما لم تقرر استخدام Cosmos بعد وتريد فقط معرفة مدى ملاءمتها لأسلوب عملك

نيك سيلفرنيك سيلفر 16 دقيقة قراءة
غطاء Portainer vs Cosmos Cloud لإدارة تطبيقات Docker مع مخطط إعداد مختلط وعمليات نيون مقابل كتل الوصول.
الخوادم ونظام التشغيل

Portainer vs Cosmos Cloud: الأفضل لإدارة تطبيقات Docker

إذا كنت تعرف Docker بالفعل وتريد فقط الطريقة الأنظف لتشغيل حزمة تطبيقات متنامية، فإليك الإجابة المختصرة على Portainer vs Cosmos Cloud. Portainer هو الاختيار الأقوى لـ direc

نيك سيلفرنيك سيلفر 14 دقيقة قراءة
يتميز رسم Cosmos Cloud vs CasaOS vs Umbrel بثلاثة مسارات مستضافة ذاتيًا داخل عالم شبكة سحابية مجردة.
الخوادم ونظام التشغيل

Cosmos Cloud vs CasaOS vs Umbrel: ما هي المنصة ذاتية الاستضافة التي تناسب إعدادك؟

الإجابة المختصرة هي أن نظام CasaOS لا يزال هو أسهل مكان للبدء، بينما يتمتع Umbrel بأنظف إحساس منظم، ويصبح Cosmos Cloud أكثر منطقية عندما تريد تحكمًا أكثر إحكامًا في doma

نيك سيلفرنيك سيلفر 11 دقيقة قراءة

هل أنت مستعد للنشر؟ من 2.48 دولارًا شهريًا.

سحابة مستقلة، منذ عام 2008. AMD EPYC، NVMe، 40 جيجابت في الثانية. استرداد الأموال خلال 14 يومًا.