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

Linux поставляется с множеством команд, каждая команда уникальна и используется в определенных случаях. Цель Linux — помочь вам быть максимально быстрым и эффективным. Одним из свойств команды Linux является ограничение по времени. Вы можете установить ограничение по времени для любой команды, которую вы хотите. Если время истекло, команда прекращает выполнение.

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

Запустите команды Linux с помощью инструмента timeout

В Linux есть утилита командной строки, называемая timeout, которая позволяет вам выполнять команду с ограничением по времени.

Его синтаксис выглядит следующим образом.

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

Чтобы использовать команду, вы указываете значение времени ожидания (в секундах) вместе с командой, которую хотите запустить. Например, чтобы тайм-аут команды ping завершился через 5 секунд, вы можете выполнить следующую команду.

# timeout 5s ping google.com

Вам не нужно указывать (s) после номера 5 . Команда ниже та же самая и будет работать.

# timeout 5 ping google.com

Другие суффиксы включают в себя:

  • m представляет минуты
  • h представляет часы
  • d представляет дни

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

Вот синтаксис.

-k, --kill-after=DURATION

Вы должны указать продолжительность, чтобы timeout узнал, через сколько времени должен быть отправлен сигнал уничтожения.

Например, показанная команда будет прекращена через 8 секунд.

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

Запуск команд Linux с помощью программы Timelimit

Программа Timelimit запускает данную команду, а затем завершает процесс через указанное время, используя данный сигнал. Сначала он передает предупреждающий сигнал, а затем по истечении времени ожидания отправляет сигнал уничтожения.

В отличие от опции 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

В других дистрибутивах Linux вы можете скачать исходный код и установить его вручную.

После установки выполните следующую команду и укажите время. В этом примере вы можете использовать 10 секунд.

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

Обратите внимание, что если вы не задаете аргументы, Timelimit использует значения по умолчанию: warntime = 3600 секунд, warnsig = 15 , killtime = 120 и killsig = 9 .

Вывод
Из этого руководства вы узнали, как выполнять команды с ограничением по времени в Linux. В обзоре вы можете использовать команду Timeout или утилиту Timelimit .

Команда Timeout проста в использовании, утилита Timelimit немного сложна, но имеет больше опций. Вы можете выбрать наиболее подходящий вариант в зависимости от ваших потребностей.

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

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