دستور Nohup در لینوکس

دستور Nohup در لینوکس

علی مرادی

دستور nohup برنامه دیگری را که به عنوان آرگومان مشخص شده است اجرا می کند و تمام سیگنالهای SIGHUP (قطع) را نادیده می گیرد. SIGHUP سیگنالی است که با بسته شدن ترمینال کنترل آن به فرآیندی ارسال می شود. معمولاً ، هنگام اجرای برنامه از طریق SSH ، اگر اتصال شما قطع شود یا از سیستم خارج شوید ، سشن خاتمه می یابد و تمام فرآیندهای اجرا شده از ترمینال متوقف می شوند. اینجاست که دستور nohup به کارتان می آید. این همه سیگنال های قطع را نادیده می گیرد و روند ادامه خواهد داشت.

در ادامه با ما در شتابان هاست همراه باشید.

نحوه استفاده از دستور nohup:

نحو دستور nohup به شرح زیر است:

nohup COMMAND [ARGS]

این دستور به غیر از نسخه استاندارد –help و –version گزینه دیگری را نمی پذیرد.

بیایید نگاهی به مثال زیر بیندازیم:

nohup mycommand

خروجی:

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

nohup دستور mycommand را در پیش زمینه اجرا می کند و خروجی دستور را به پرونده nohup.out هدایت می کند. این پرونده در فهرست کار فعلی ایجاد شده است. اگر کاربری که فرمان را اجرا می کند مجوز نوشتن در پوشه فعال را نداشته باشد ، پرونده در فهرست اصلی کاربر ایجاد می شود.

اگر از سیستم ترمینال خارج شده و یا ببندید ، روند کار خاتمه نمی یابد.

اجرای دستور در پس زمینه:

استفاده از nohup در پیش زمینه بسیار مفید نیست زیرا تا زمانی که دستور کامل نشود نمی توانید با پوسته تعامل کنید.

برای اجرای دستور در پس زمینه ، نماد & را در انتهای دستور ضمیمه کنید:

nohup mycommand &

خروجی شامل شناسه کار پوسته (با براکت احاطه شده) و شناسه فرآیند است:

[۱] ۲۵۱۷۷

با استفاده از شناسه کار می توانید دستور را با استفاده از دستور fg به پیش زمینه بیاورید.

اگر به هر دلیلی می خواهید روند را خاتمه دهید ، از دستور kill و به دنبال آن شناسه فرآیند استفاده کنید:

kill -9 25132

هدایت خروجی به یک پرونده:

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

به عنوان مثال ، برای هدایت خروجی استاندارد و خطای استاندارد به mycommand.out که استفاده می کنید:

nohup mycommand > mycommand.out 2>&1 &

برای هدایت خروجی استاندارد و خطای استاندارد به پرونده های مختلف:

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

جمع بندی:

nohup به شما امکان می دهد هنگام خاموش شدن یا خارج شدن از ترمینال ، از خاتمه دستورات جلوگیری کنید.

امیدوارم این مقاله براتون مفید بوده باشه.

ما رو تو شتابان هاست دنبال کنید

برچسب ها: دستورات لینوکس