timeout يك ابزار خط فرمان است كه يك فرمان مشخص را اجرا مي كند و اگر هنوز پس از يك دوره زمان معيني در حال اجرا باشد آن را خاتمه مي دهد. به عبارت ديگر timeout به شما امكان مي دهد يك دستور با محدوديت زماني معيني را اجرا كنيد. timeout دستوري از بخش نرم افزار هاي اصلي GNU كه تقريبا در هر توزيع لينوكس نصب شده است. وقتي مورد استفاده قرار مي گيرد كه مي خواهيد دستوري را با گزينه هاي زمان بندي داخلي اجرا كنيد.
در اين مقاله نحوه استفاده از دستور timeout لينوكس را توضيح خواهيم داد. با ما در شتابان هاست همراه باشيد.
نحوه كار با timeout به شرح زير است :
{[timeout [OPTIONS] DURATION COMMAND [ARG]…}
DURATION
اختياري است مي تواند يك عدد صحيح مثبت يا يك عدد متغيير باشد:
در اينجا چند مثال اساسي وجود دارد كه نحوه استفاده از دستور timeout را نشان مي دهد:
tcpdump
داشته باشد ، قبل از پايان زمان ، sudo را آماده كنيد:اگر سيگنال ارسال نشود ، دستور timeout سيگنال SIGTERM را به فرمان مديريت شده ارسال مي كند. شما مي توانيد با استفاده از گزينه -s
(--signal
) سيگنال را ارسال كنيد.
به عنوان مثال ، براي ارسال SIGKILL به فرمان ping بعد از يك دقيقه استفاده كنيد:
براي به دست آوردن ليستي از تمام سيگنال هاي موجود ، از دستور kill -l استفاده كنيد:
Kill-l
SIGTERM ، سيگنالي است كه ممكن است هنگام ارسال شدن از timeout عبور كند و توسط برخي از فرايندها ناديده گرفته شود. در آن شرايط ، پس از ارسال ، روند ارسال سيگنال همچنان ادامه دارد؛ براي اطمينان از اينكه فرايند هاي گير كرده از بين رفته است ، از عبارت -k
(--kill-after
استفاده كنيد. هنگامي كه اين گزينه بعد از رسيدن مدت زمان معيني برطرف شد ، دستور timeout سيگنال SIGKILL
را به برنامه مديريت شده ارسال مي كند كه نمي توان آن را ناديده گرفت.
در مثال زير ، timeout
دستور را به مدت يك دقيقه اجرا مي كند و اگر خاتمه نياورد ، پس از ده ثانيه آن را مي كشد:
timeout -k “./test.sh”
پس از رسيدن به محدوديت زماني معين كشته شده است.
timeout به مدت ۱۲۴ باز مي گردد . در غير اين صورت ، وضعيت خروج فرمان مديريت شده را بر مي گرداند.
براي بازگشت وضعيت خروج فرمان از گزينه --preserve-status
استفاده كنيد.
اين گزينه براي زماني است كه مي خواهيد يك دستور تعاملي را اجرا كنيد كه به ورود كاربر نياز داريد.
timeout براي اجراي يك دستور معين با محدوديت زماني استفاده مي شود. دستور timeout ساده بوده و گزينه هاي زيادي ندارد.
ما را در شتابان هاست دنبال كنيد.