В повседневной жизни бывают ситуации когда нужно чтобы составленный скрипт начал свою работу не вот прям сейчас же, а через определенное время. Можно конечно использовать планировщик cron, но вот чтобы скрипт еще и завершился после назначенного времени это сделать будет проблематично. Поиск решения данной задачи сподвиг меня задействовать утилиту timeount (timeout – run a command with a time limit) которая входит в пакет coreutils и значит она установлена преимущественно и у Вас по умолчанию, т.к. данный пакет содержит многие необходимые утилиты используемые в повседневности консольщика.

Почитать много больше информации можно так:

ekzorchik@srv-mon:~$ info coreutils 'timeout invocation'

Ниже несколько примеров использования утилиты timeout:

ekzorchik@srv-mon:~$ nano net

#!/bin/bash

while true ; do netstat -tln | grep :22 ; sleep 5 ; done

ekzorchik@srv-mon:~$ chmod +x net

ekzorchik@srv-mon:~$ timeout 10s ./net

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp6 0 0 :::22 :::* LISTEN

ekzorchik@srv-mon:~$

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

Что еще особенно важно, так это можно указать что запущенный в назначенное время скрипт завершить на определенном времени.

ekzorchik@srv-mon:~$ timeout -k 15s -s 9 10s ./net

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp6 0 0 :::22 :::* LISTEN

Killed – скрипт завершился по заданному времени.

На заметку:

Аргумент -k — время через которое следует завершить (1s, 1m, 1h)

Аргумент -s — сигнал, с которым убивать (9 или SIGKILL).

Синтаксис запуска утилиты такой:
timeout [OPTIONS] timeout command

Вот так, оказывается в самой системе (в моем случае это Ubuntu 12.04.5 Desktop/Server) можно комбинирую различные утилиты исполнять задуманное, думаю стоит и Вам обращаться по больше к справочным данным используемых утилит с целью а не затесалась ли там интересная, продуктивная возможность исполнения задуманного. На этом считаю заметку пока завершенной, в последствии ее конечно же можно будет дополнить. С уважением автор блога – ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru