خصم ٥٠٪ على جميع الخطط، لفترة محدودة. يبدأ من $2.48/mo
٨ دقائق متبقية
الخوادم ونظام التشغيل

كيف يعمل أمر nohup في Linux: الصياغة وحالات الاستخدام والأمثلة

أيدا لوفجود By أيدا لوفجود ٨ دقائق للقراءة آخر تحديث: ١٤ يوليو ٢٠٢٤
أمر nohup

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

فهم صياغة أمر nohup في Linux

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

nohup [command] [arguments] &

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

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]' &

استبدل [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". تُعاد توجيه المخرجات المجمّعة إلى error_logs.txt.

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

الأخطاء الشائعة واستكشاف الأعطال

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

رفض الصلاحية

يحدث هذا الخطأ حين لا يملك السكريبت أو الأمر الذي تحاول تشغيله صلاحية التنفيذ. يبدو الخطأ على النحو التالي: nohup: failed to run command 'myscript.sh': Permission denied

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

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

الأمر غير موجود

يحدث هذا الخطأ إذا لم يكن الأمر أو السكريبت موجوداً في المسار المحدد، أو لم يكن متاحاً في متغير PATH لديك. يبدو الخطأ على النحو التالي: nohup: failed to run command 'myscript.sh': No such file or directory

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

nohup /path/to/myscript.sh &

تأكّد أيضاً من أن الأمر مثبَّت ومتاح في متغير PATH لديك.

لا يوجد إخراج

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

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

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

السكريبت لا يعمل في الخلفية

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

عملية متوقفة أو لا تستجيب

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

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

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

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

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

خلاصة

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

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

الأسئلة الشائعة

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

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

لماذا يُستخدم nohup؟

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

ما هو ملف nohup out؟

الـ nohup.out هو ملف المخرجات الافتراضي الذي يُعيد nohup إليه توجيه المخرجات القياسية والأخطاء القياسية للأمر. إذا لم يُحدَّد ملف مخرجات آخر، تُحفظ مخرجات الأمر في nohup.out في المجلد الحالي.

مشاركة

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

تابع القراءة.

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

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

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

نيك سيلفرنيك سيلفر قراءة في ١٦ دقيقة
غلاف مقارنة Portainer مقابل Cosmos Cloud لإدارة تطبيقات Docker مع مخطط إعداد هجين وكتل neon ops و access.
الخوادم ونظام التشغيل

Portainer مقابل Cosmos Cloud: الأنسب لإدارة تطبيقات Docker

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

نيك سيلفرنيك سيلفر ١٤ دقيقة قراءة
رسم توضيحي لمقارنة Cosmos Cloud مقابل CasaOS مقابل Umbrel يُظهر ثلاثة مسارات ذاتية الاستضافة داخل عالم شبكة سحابية مجردة.
الخوادم ونظام التشغيل

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

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

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

هل أنت مستعد للنشر؟ يبدأ من ٢٫٤٨ دولار/شهر.

سحابة مستقلة منذ ٢٠٠٨. AMD EPYC، NVMe، 40 Gbps. ضمان استرداد المبلغ لمدة ١٤ يومًا.