Как запустить команду с ограничением по времени (тайм-аутом) в Linux
Linux поставляется с множеством команд, каждая из которых уникальна и используется в определенных случаях. Цель Linux — помочь вам работать как можно быстрее и эффективнее. Одним из свойств команды Linux является ограничение по времени. Вы можете установить ограничение по времени для любой команды. По истечении времени выполнение команды прекращается.
В этом коротком уроке вы изучите два метода использования ограничения по времени в своих командах.
На этой странице:
- Запускайте команды Linux с помощью инструмента тайм-аута
- Запускайте команды 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 немного сложна, но имеет больше возможностей. Вы можете выбрать наиболее подходящий вариант в зависимости от ваших потребностей.