Как выполнить команду с ограничением по времени в Linux

Как выполнить команду с ограничением по времени в Linux

Рубрики:

Linux, Утилиты Linux

Метки:

, ,

В операционной системе Linux некоторые процессы выполняются непрерывно, и для их завершения через заданное время используется команда timeout. Этот инструмент командной строки запускает указанную команду и завершает ее, если она выполняется дольше заданного периода времени. Другая похожая команда — это timelimit. Данная утилита выполняет заданную команду и завершает порожденный ею процесс через указанное время с определенным сигналом. Если процесс завершается до истечения времени, команда timelimit также тихо завершит его.

Из этой статьи Вы узнаете о синтаксисе и параметрах этих двух команд. Также мы покажем Вам несколько примеров использования утилит для ограничения времени выполнения процессов на практике.

Содержание:

  1. Использование команды timeout для прерывания работы команд в Linux
  2. Ограничение времени работы команды с помощью timelimit

Использование команды timeout для прерывания работы команд в Linux

Как было сказано ранее, команда timeout завершит введенную с ней команду, если она продолжает выполняться дольше заданного промежутка времени. Чтобы узнать ее синтаксис и параметры, которые Вы можете использовать — введите в командную строку следующее:

 

Справочник timeout

Рассмотрим использование данной команды на примере ping-запросов. Команда ping используется для проверки целостности и качества соединений в сетях на основе TCP / IP. Если не установить ограничения по времени, этот процесс будет выполняться бесконечно долго.

Для примера попробуем проверить соединение с IP-адресом 192.168.59.131и установим для команды тайм-аут через 5 секунд:

 

Timeout ping

Также проверим соединение с сайтом нашего блога и прервем выполнение команды через 5 секунд:

 

Timeout sedicomm

По умолчанию команда timeout устанавливает время в секундах. Если Вам нужно прекращать другие команды через более длительные промежутки времени — тогда используйте следующие аргументы:

  • m — минуты;
  • h — часы;
  • d — дни.

Читайте также: Автоматический запуск команд через время после включения устройства

Иногда команды могут игнорировать SIGTERM — сигнал по умолчанию от команды timeout. В таких случаях Вы можете использовать опцию --kill-after или сокращенно -k. При использовании этой опции после достижения заданного срока утилита посылает заданной программе сигнал SIGKILL, который не может быть пойман или проигнорирован.

Например, следующая команда задаст время работы ping в 15 секунд. И если по истечении этого промежутка времени работа команды не не завершился — процесс будет принудительно остановлен еще через 5 секунд:

 

Использование опции kill after

Ограничение времени работы команды с помощью timelimit

Команда timelimit имеет точно такой же функционал, что и команда timeout. Однако она сперва передает предупреждающий сигнал, а затем по истечении времени ожидания уже отправляет сигнал уничтожения процесса.

По умолчанию инструмент имеет 4 основные опции с заранее заданными значениями:

  • warntime(-t): 3600 секунд — максимальное время выполнения процесса в секундах до отправки сигнала warnsig;
  • warnsig(-s): 15 секунд — сигнал, который будет отправлен процессу warntime через несколько секунд после его запуска;
  • killtime(-T): 120 секунд — максимальное время выполнения процесса перед отправкой killsig после того, как
    warnsig был отправлен;
  • killsig(-S): 9 — сигнал, который будет отправлен процессу killtime через несколько секунд после истечения времени warntime.

Используя эти опции, Вы можете изменять их значения.

Команда timelimit изначально не предустановлена в большинстве дистрибутивов GNU / Linux. Поэтому ее нужно установить самостоятельно с помощью пакетного менеджера Вашей операционной системы. Например, в дистрибутивах на основе Debian и Ubuntu для этого используется команда apt install:

 

Установка timelimit

Чтобы узнать синтаксис утилиты — выполните следующую команду:

 

Синтаксис инструмента

Для более подробного ознакомления с утилитой советуем почитать ее справочную страницу man:

 

Страница man команды

Рассмотрим пример использования команды. Для начала воспользуемся параметром -t и зададим ему значение в 5 секунд:

 

Пример с timelimit

Как Вы могли заметить, в результате команда посылает сигнал warnsig, и процесс прекращается.

Выводы

Пользователи Linux имеют в своем распоряжении сразу два простых и удобных инструмента для ограничения времени выполнения командtimelimit и timeout. При этом освоить их использование довольно просто, особенно. Уверены, у Вас все получится!

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Утилиты Linux

Метки:

, ,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню