Я хочу ограничить время, в течение которого grep
команда процесса может выполняться или быть активной.
Например. Я хочу выполнить следующее:
grep -qsRw -m1 "parameter" /var
Но перед запуском grep
команды я хочу ограничить продолжительность grep
процесса, скажем, не более 30 секунд.
Как мне это сделать?
И если это возможно, как я могу вернуться или сбросить, чтобы не иметь ограничения по времени впоследствии.
timeout
и даже получили инструкции по его установке. Это грубо игнорировать этот ответ, а затем дублировать ваш вопрос.Ответы:
Вы можете использовать timelimit , он доступен в Ubuntu по умолчанию или вы можете скомпилировать его самостоятельно.
timelimit выполняет команду и завершает порожденный процесс через определенное время с заданным сигналом. Сначала отправляется сигнал «предупреждение», затем, после тайм-аута, сигнал «убить», аналогично тому, как init (8) работает при выключении.
источник
sudo aptitude install timelimit
. Прекрасно работает после установки.Вот для этого немного хакерский удар:
По сути, он начинает поиск в фоновом режиме, затем запускает подоболочку, которая ждет 30 секунд, а затем убивает процесс поиска. Если поиск занимает <30 с, процесс уже будет мертв. Это не очень хорошая идея, чтобы убить процесс, который уже мёртв, так как очень маловероятно, что кто-то еще будет повторно использовать pid, но для чего-то подобного это обычно нормально. Наконец, поиск возвращается на передний план и будет выполняться до тех пор, пока он не закончится или не будет уничтожен.
источник
Создайте новый файл с именем "tgrep" и вставьте в него следующее (или назовите его как хотите):
Далее беги
chmod a+x tgrep
. Теперь, если вы хотите использовать его, вы можете набратьИли вы можете просто использовать его как tgrep (без ./ и иметь возможность использовать его из любого каталога), если вы поместите его в каталог, содержащийся в переменной $ PATH (например, / home / dan / bin /, если он находится в переменная $ PATH, в противном случае вы можете добавить ее).
источник