Ответ 1
См. timeout теперь в большинстве дистрибутивов GNU/Linux.
timeout -sHUP 10m command
Такую же функциональность можно достичь с помощью http://www.pixelbeat.org/scripts/timeout
Есть ли какая-либо команда bash/linux для запуска долговременной команды, а затем убить ее через n минут? Думаю, я мог взломать что-то с помощью perl, используя fork и убить, но кто-нибудь знает что-то уже там?
См. timeout теперь в большинстве дистрибутивов GNU/Linux.
timeout -sHUP 10m command
Такую же функциональность можно достичь с помощью http://www.pixelbeat.org/scripts/timeout
Попробуйте с этим, он запустит вашу команду в фоновом режиме, сохранит ее PID в $P, ждет некоторое время и убивает ее с помощью SIGHUP
.
yourCommand & PID=$!
sleep ${someMinutes}m
kill -HUP $PID
Приветствия
PS: это предполагает сон, который знает о Nm (минутах), иначе вы можете сделать некоторую математику:)
n=5
some_command &
pid=$!
at now + $n minutes <<<"kill -HUP $pid"
Преимущество использования at
в ожидании sleep
заключается в том, что ваш script не будет блокировать ожидание завершения сна. Вы можете идти и делать другие вещи, а at
будет асинхронно запускаться в указанное время. В зависимости от вашего script, который может быть очень важной функцией.