نحوه اجرای یک دستور با محدودیت زمانی (Timeout) در لینوکس

نحوه اجرای یک دستور با محدودیت زمانی (Timeout) در لینوکس

علی مرادی

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

در این آموزش کوتاه قصد داریم استفاده از محدودیت زمانی در دستورات را به دو روش آموزش دهیم. در ادامه با ما در شتابان هاست همراه باشید.

دستورات لینوکس را با استفاده از ابزار timeout اجرا کنید:

لینوکس از ابزار خط فرمان به نام timeout برخوردار است که شما را قادر می سازد یک دستور را با محدودیت زمانی اجرا کنید.

نحو آن به شرح زیر است.

timeout [OPTION] DURATION COMMAND [ARG]...

برای استفاده از دستور ، مقدار دستور (در چند ثانیه) را با دستیابی که می خواهید اجرا کنید ، تعیین می کنید. به عنوان مثال ، برای پایان دادن به دستور پینگ بعد از ۵ ثانیه ، می توانید دستور زیر را اجرا کنید.

timeout 5s ping google.com

لازم نیست بعد از شماره ۵ (s) را مشخص کنید. دستور زیر همان است و همچنان کار خواهد کرد.

timeout 5 ping google.com

نحوه اجرای یک دستور با محدودیت زمانی (Timeout) در لینوکس

پسوندهای دیگر شامل:

  • m دقیقه را نشان می دهد.
  • h ساعت را نشان می دهد.
  • d روز را نشان می دهد.

بعضی اوقات دستورات ممکن است حتی پس از ارسال سیگنال اولیه به کار خود ادامه دهند. در چنین مواردی می توانید از گزینه –kill-after استفاده کنید.

-k, --kill-after=DURATION

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

به عنوان مثال ، دستور نشان داده شده پس از ۸ ثانیه خاتمه می یابد.

timeout 8s tail -f /var/log/syslog

نحوه اجرای یک دستور با محدودیت زمانی (Timeout) در لینوکس

دستورات لینوکس را با استفاده از برنامه Timelimit اجرا کنید:

برنامه Timelimit با استفاده از یک سیگنال معین ، یک دستور معین را اجرا می کند و مراحل را پس از مدت مشخص ، مشخص می کند. در ابتدا سیگنال هشدار دهنده را منتقل می کند ، و پس از اتمام وقت ، سیگنال kill را ارسال می کند.

بر خلاف گزینه timeout ، Timelimit گزینه های بیشتری مانند killsig، warnsig killtime و warntime را دارد.

Timelimit را می توان در مخازن سیستم های مبتنی بر Debian یافت و برای نصب آن از دستور زیر استفاده کنید.

sudo apt install timelimit

برای سیستم های مبتنی بر Arch ، می توانید آن را با استفاده از برنامه های کمکی AUR ، مانند Pacaur Pacman ، و Packer نصب کنید.

Pacman -S timelimit
pacaur -S timelimit
packer -S timelimit

در سایر توزیع های لینوکس ، می توانید منبع timelimit را بارگیری کرده و به صورت دستی آن را نصب کنید.

پس از نصب ، دستور زیر را اجرا کرده و زمان را مشخص کنید. در این مثال می توانید از ۱۰ ثانیه استفاده کنید.

timelimit -t10 tail -f /var/log/pacman.log

توجه داشته باشید که اگر آرگومان ها را مشخص نکردید ، Timelimit از مقادیر پیش فرض استفاده می کند: warntime = 3600 ثانیه ، warnsig = 15 ، killtime = 120 و killsig = 9.

جمع بندی:

در این راهنما یاد گرفته اید که چگونه دستورات با محدودیت زمانی در لینوکس را اجرا کنید. در کل ، می توانید از دستور Timeout یا ابزار Timelimit استفاده کنید.

استفاده از دستور Timeout آسان است ، اما ابزار Timelimit کمی پیچیده است اما گزینه های بیشتری دارد. بسته به نیاز خود می توانید مناسب ترین گزینه را انتخاب کنید.

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

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

برچسب ها: Command SSh