Поиск по сайту:

Как запустить команду с ограничением по времени (тайм-аутом) в Linux


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

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

На этой странице:
  1. Запускайте команды Linux с помощью инструмента тайм-аута
  2. Запускайте команды Linux с помощью программы Timelimit

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

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

Его синтаксис следующий.

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

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

timeout 5s ping google.com

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

timeout 5 ping google.com

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

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

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

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

-k, --kill-after=DURATION

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

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

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

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

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

В отличие от параметра timeout, Timelimit имеет больше параметров, таких как killsig, warnsig, killtime. > и время предупреждения.

Timelimit можно найти в репозиториях систем на базе Debian. Для его установки используйте следующую команду.

sudo apt install timelimit

Для систем Arch его можно установить с помощью вспомогательных программ AUR, например, Pacaur Pacman и . >Упаковщик.

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

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

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

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

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

Заключение

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

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