Поиск по сайту:
В симбиозе человек-машина приспосабливаться должен человек; машины этого не могут. (Алан.Дж.Перлис)

Команда Timeout в Linux

27.01.2020
Команда Timeout в Linux

timeout, это утилита командной строки, которая запускает указанную команду и завершает ее, если она все еще выполняется через определенный промежуток времени. Другими словами, timeout позволяет запустить команду с ограничением по времени. Команда timeout является частью пакета основных утилит GNU, который устанавливается практически в любом дистрибутиве Linux.

Это удобно, когда вы хотите запустить команду, у которой нет встроенной опции тайм-аута.

В этой статье мы объясним, как использовать команду timeout в Linux.

 

Как использовать команду timeout

Синтаксис команды timeout следующий:

timeout [OPTIONS] DURATION COMMAND [ARG]…

где DURATION, может быть положительное целое число или число с плавающей точкой, а затем с помощью дополнительного блока суффикса:

  • s — секунды (по умолчанию)
  • m — минуты
  • h — часы
  • d — дни

 

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

Параметры команды должны быть указаны перед аргументами.

Вот несколько основных примеров, демонстрирующих использование команды timeout:

  • Завершить команду через пять секунд:
    timeout 5 ping 8.8.8.8
  • Завершите команду через пять минут:
    timeout 5m ping 8.8.8.8
  • Завершите команду через одну минуту и ​​шесть секунд:
    timeout 1.1m ping 8.8.8.8

Если вы хотите запустить команду, требующую повышенных привилегий, например tcpdump, добавьте sudo перед timeout:

sudo timeout 300 tcpdump -n -w data.pcap

 

Отправка определенного сигнала

Если сигнал не подается, timeout отправляет сигнал SIGTERM в управляемую команду, когда достигнут предел времени. Вы можете указать, какой сигнал отправить, используя опцию -s( —signal).

Читать  Команда Sed для удаления строки

Например, чтобы отправить SIGKILL в команду ping через одну минуту, вы будете использовать:

sudo timeout -s SIGKILL ping 8.8.8.8

 

Сигнал может быть указан как его имя SIGKILL или его номер как 9. Следующая команда идентична предыдущей:

sudo timeout -s 9 ping 8.8.8.8

 

Чтобы получить список всех доступных сигналов, используйте команду kill -l:

kill -l

 

Уничтожение застрявших процессов

SIGTERM сигнал по умолчанию, отправляемый при превышении лимита времени, может быть перехвачен или проигнорирован некоторыми процессами. В этих ситуациях процесс продолжает выполняться после отправки сигнала завершения.

Чтобы убедиться, что отслеживаемая команда уничтожена, используйте параметр -k( —kill-after), следующий за периодом времени. Когда эта опция используется после достижения заданного временного предела, команда timeout отправляет SIGKILL управляемой программе сигнал, который не может быть перехвачен или проигнорирован.

В следующем примере команда timeout запускается в течение одной минуты, и, если она не прервана, она уничтожит ее через десять секунд:

sudo timeout -k 10 1m ping 8.8.8.8

 

timeout -k “./test.sh”

убит по истечении заданного срока

 

Сохранение статуса выхода

timeout возвращает 124, когда достигнут срок. В противном случае он возвращает состояние завершения управляемой команды.

Чтобы вернуть статус завершения команды, даже если достигнут предел времени, используйте параметр —preserve-status:

timeout --preserve-status 5 ping 8.8.8.8

 

Запуск на переднем плане

По умолчанию timeout запускается как управляемая команда в фоновом режиме. Если вы хотите выполнить команду на переднем плане, используйте параметр —foreground:

timeout --foreground 5m ./script.sh

 

Читать  Команды Linux Как предотвратить ошибку SSH Broken Pipe

Эта опция полезна, когда вы хотите запустить интерактивную команду, которая требует ввода данных пользователем.

 

Вывод

Команда timeout используется для запуска данной команды с ограничением по времени.

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Юра

Спасибо!
Всё просто и понятно!

Это может быть вам интересно


Рекомендуемое
Витая пара является одним из основных компонентов СКС. Применяется данный…

Спасибо!

Теперь редакторы в курсе.