Как запустить программу в течение установленного промежутка времени?

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

Я нашел программу, которая делает это способом, мне нравится, но пакет недоступен Ubuntu. В любом случае я надеялся на что-то встроенное.

Единственная вещь, о которой я могу думать, состоит в том, чтобы получить текущее время и установить задание крона 30 минут от 'теперь', которые закроют программу. Я надеялся, что был способ сделать это, не настраивая сценарий, но если мне нужно к - он привычка быть концом света. После 30-минутного интервала я хотел бы поместить свой ноутбук в режим ожидания, но это может быть отдельным от вещи таймера.

Заранее спасибо.

7
задан 7 September 2013 в 13:48

4 ответа

Я имею, просто записал следующее, и это, кажется, работает:

ping google.com& PID=$!; sleep 3; kill $PID

Конечно, необходимо заменить ping с командой, которую Вы хотите выполнить и 3 с тайм-аутом в секундах. Сообщите мне, нужно ли Вам более подробное объяснение о том, как оно работает.

13
ответ дан 23 November 2019 в 06:09

Простое (и не очень протестированный) версия hatimerun:

#!/bin/sh

help(){
    echo "Usage"  >&2
    echo "  $0 -t TIME COMMAND" >&2
    exit 1
}

TEMP=`getopt -o t: -n "$0" -- "$@"`

if [ $? != 0 ] ; then 
    help
fi

eval set -- "$TEMP"

while true ; do
    case "$1" in
    -t) timeout=$2; shift  2;;
    --) shift; break;;
    esac
done

if [ -z "$timeout" ]; then
 help
fi

cmd="$*"

$cmd&
echo "kill $!" | at now+$timeout

См. страницу справочника в для того, как указать время. Как с at минимальное разрешение времени составляет 1 минуту.

Иначе должен использовать выскочку вместо этого сценария.

3
ответ дан 23 November 2019 в 06:09

Почему бы не использовать /usr/bin/timeout?

$ timeout --help
Usage: timeout [OPTION] DURATION COMMAND [ARG]...
  or:  timeout [OPTION]
Start COMMAND, and kill it if still running after DURATION.
14
ответ дан 23 November 2019 в 06:09

Использование Perl:

perl -e "alarm 5; exec @ARGV" systemctl list-timers

Используя команду timelimit:

sudo apt install timelimit    
timelimit -t5 node app.js

Используя команду тайм-аута:

timeout -sHUP time command

0
ответ дан 23 November 2019 в 06:09

Другие вопросы по тегам:

Похожие вопросы: