إذا كنت أحد مطوري 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 في الدليل الحالي.