Виконайте команду протягом визначеного часу, а потім перервіть, якщо час перевищує


47

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

Відповіді:


62

Використання timeout:

NAME
       timeout - run a command with a time limit

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

(Про всяк випадок, якщо у вас немає цієї команди або якщо вам потрібно бути сумісним із дуже давніми оболонками та маєте кілька інших абсолютно специфічних вимог ... погляньте на це питання ;-))


1
Чудово, дякую за посилання на це питання. У мене не було тайм-ауту в моїй системі, але я це роблю зараз. Щойно на зауваження, чи тайм-аут входить до складу більшості дистрибутивів Linux?
nikhil

1
Дуже здорово. ви можете зробити щось подібне: for i in `seq 0 3`; do timeout 2 ethtool -p eth$i; done;блимати світлодіоди на NIC
користувач1527227

1
Яка сексуальна команда. Дякую, що вказали на це, не знали про це.
Бруно Бієрі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.