Я хочу запустить скрипт оболочки, в котором есть цикл, и он может продолжаться вечно, чего я не хочу. Поэтому мне нужно ввести тайм-аут для всего сценария.
Как я могу ввести тайм-аут для всего сценария оболочки под SuSE?
shell-script
timeout
Радек
источник
источник
timeout
илиexpect
)Ответы:
Если GNU
timeout
недоступен, вы можете использовать егоexpect
(Mac OS X, BSD, ... обычно не имеют инструментов и утилит GNU по умолчанию).Пример редактирования :
источник
timeout
равен 124 в случае тайм-аута, в противном случае это статус возврата команды (это упоминается в ответе Тима Кеннеди).Спасибо тебе за пояснение.
Самый простой способ выполнить то, что вам нужно, - это запустить ваш скрипт с циклом внутри оболочки, как
timeout
команда из пакета GNU Coreutils.В конце концов, это будет намного проще, чем написание собственной функции тайм-аута, которая обычно не имеет встроенных оболочек.
источник
gtimeout
на моей установке (OSX).Запустите сторожевой процесс из вашего скрипта, чтобы убить его родителя, если он выполняется слишком долго. Пример:
Этот сценарий будет остановлен сторожевым таймером через пять секунд.
источник
Там также
cratimeout
Мартин Кракауэр.источник
источник