Запустите команду в течение указанного времени, а затем прервите, если время превышает


47

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

Ответы:


62

Используйте timeout:

NAME
       timeout - run a command with a time limit

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

(На всякий случай, если у вас нет этой команды или вам нужно быть совместимым с очень очень старыми оболочками и иметь несколько других совершенно специфических требований… посмотрите на этот вопрос ;-))


1
Отлично, спасибо за ссылку на этот вопрос. У меня не было тайм-аута в моей системе, но у меня есть сейчас. Кстати, входит ли таймаут в большинство дистрибутивов Linux?
Нихил

1
Довольно круто. Вы можете сделать что-то вроде этого: for i in `seq 0 3`; do timeout 2 ethtool -p eth$i; done;мигать светодиодами на
сетевых картах

1
Какая сексуальная команда. Спасибо за указание, не знал об этом.
Бруно
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.