وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش استفاده از Nohup در لینوکس

0 68
زمان لازم برای مطالعه: 3 دقیقه


تصور کنید اگر انتقادی است process در حال اجراست روی سیستم شما و زمان زیادی می برد. ناگهان باید از سیستم خود خارج شوید. اگر از سیستم خارج شوید، فرآیندهای شما متوقف می شود و مطمئناً می خواهید از این کار جلوگیری کنید. اگر دویدن خود را می خواهید process برای ادامه بدون وقفه، پس به دستور nohup نیاز دارید.

Nohup (مخفف no hangup) فرمانی است که سیگنال HUP را نادیده می گیرد. ممکن است تعجب کنید که سیگنال HUP چیست. اساساً سیگنالی است که به a تحویل داده می شود process هنگامی که پوسته مرتبط با آن خاتمه می یابد. معمولاً وقتی از سیستم خارج می‌شویم، تمام برنامه‌ها و فرآیندهای در حال اجرا قطع یا متوقف می‌شوند. اگر بخواهیم به اجرای آن ادامه دهیم process حتی پس از خروج یا قطع شدن از پوسته فعلی، می توانیم از دستور nohup استفاده کنیم. این فرآیندها را در برابر سیگنال های HUP ایمن می کند تا برنامه حتی پس از خروج از سیستم اجرا شود. با nohup، دیگر نیازی به ورود به سیستم برای مدت طولانی ندارید تا منتظر بمانید process تکمیل شود.

در این مقاله روش استفاده از دستور Nohup را در سناریوهای مختلف در لینوکس توضیح خواهیم داد.





نحو دستور Nohup

برای استفاده از دستور nohup، نحو عبارت است از:

$ بیهوده فرمان استدلال ها

یا

$ بیهوده گزینه ها

برای یافتن راهنمایی در مورد دستور nohup، از دستور زیر استفاده کنید:

$ بیهوده –کمک

برای پیدا کردن اطلاعات نسخه nohup از دستور زیر استفاده کنید:

$ بیهوده — نسخه

شروع یک process با استفاده از Nohup

اگر می خواهید یک فرمان را حفظ کنید یا process در حال اجرا حتی اگر از پوسته خارج شوید، از nohup و به دنبال آن دستور برای اجرا استفاده کنید:

$ بیهوده فرمان

پس از اجرای دستور بالا، تمام خروجی ها به همراه پیام های خطا به فایل nohup.out در دایرکتوری Home یا دایرکتوری فعلی اضافه می شوند. حال اگر پوسته بسته شود یا از سیستم خارج شوید، دستور اجرا شده در بالا خاتمه نمی‌یابد.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از مقدار Boolean در Bash

تغییر مسیر خروجی به فایل های مختلف

به طور پیش فرض، خروجی دستور nouhup به فایل nohup.out اضافه می شود. برای تغییر مسیر این خروجی به فایل دیگری، از عملگر > redirector و نام فایل خاص استفاده کنید. به عنوان مثال، ما از دستور زیر برای ذخیره خروجی دستور nohup در فایل جدیدی به نام myscript.sh استفاده کرده ایم.

$ سودو بیهوده ./mn.sh > myscipt.sh &

شروع یک process در پس زمینه با استفاده از Nohup

برای شروع و قرار دادن process در پس زمینه، باید از nohup به صورت زیر استفاده کنید:

$ بیهوده فرمان &

را & نماد به پوسته می گوید که دستور را در پس زمینه اجرا کند. این دستور مشابه دستور nohup بالا است با این تفاوت که وقتی جلسه به پایان می رسد، بلافاصله به اعلان پوسته باز می گردد. برای بازگرداندن آن به خط مقدم، از دستور “fg” استفاده کنید.

روش استفاده از Nohup در لینوکس

خروجی تمام دستوراتی که اجرا می کنید به فایل nohup.out اضافه می شود. شما می توانید این فایل را با استفاده از دستور cat nohup در ترمینال مشاهده کنید. شماره 80132 در تصویر بالا نشان می دهد process شماره شناسایی (PID) از process در حال اجرا در پس زمینه

چندین فرآیند را در پس زمینه با استفاده از Nohup شروع کنید

با استفاده از دستور nohup می توانید چندین دستور را در پس زمینه اجرا کنید. در مثال زیر دستورات mkdir، ping و ls با استفاده از دستور nohup در پس زمینه اجرا می شوند.

$ بیهوده bash ‘فایل های mkdir &&
ping -c 1 google.com && ls’
> output.txt

روش استفاده از Nohup در لینوکسروش استفاده از Nohup در لینوکس

خاتمه دادن process در حال اجرا در پس زمینه

خاتمه دادن به الف process در حال اجرا در پس زمینه، از دستور kill به صورت زیر استفاده کنید:

$ کشتن -9 PID

PID a را پیدا خواهید کرد process هنگام استفاده از nohup با “&”. راه دیگر برای یافتن PID از طریق دستور pgrep –a است. برای مثال، اگر فرمان Ping را با nohup اجرا کرده باشید، حتی اگر پوسته را ببندید، در پس‌زمینه اجرا می‌شود. حالا در این مورد، برای پیدا کردن PID یک پینگ process در حال اجرا در پس زمینه، از این دستور استفاده کنید:

$ pgrep –a پینگ

تمام فرآیندهای مرتبط با دستور Ping را فهرست می کند.

پیشنهاد می‌کنیم بخوانید:  روش رفع خطای ترمینال Bash: «Bash: خطای نحوی نزدیک به توکن غیرمنتظره «Newline»

روش استفاده از Nohup در لینوکسروش استفاده از Nohup در لینوکس

حالا برای خاتمه دادن به پینگ process در حال اجرا در پس زمینه، از دستور kill به صورت زیر استفاده کنید:$ kill -9 80928بنابراین، این معرفی کوتاه دستور nohup در لینوکس بود. دستور Nohup برای جلوگیری از موارد مهم استفاده می شود process از پایان یافتن زمانی که از سیستم خارج می شوید یا جلسه را می بندید. زمانی که در حال اجرا هستید کمک زیادی می کند processبه خصوص اسکریپت هایی که تکمیل آنها زمان زیادی می برد.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 05:49:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید