Я должен остановить выполнение под управлением сценария Java в терминале и запустить то же выполнение в каждый x интервал времени в терминале. Действительно ли это возможно?
Да, /usr/bin/timeout
инструмент для использования. См. man timeout
. Вот пример от одного из моих ночных cron
задания, можно перенести Ваш в while true ; do
цикл:
TO_KILL="45m" # timeout (kill -KILL) for hpodder
TO_HUP="42m" # timeout (kill -HUP) for hpodder. Makes sense only if it is less than $TO_KILL
# ...
timeout -k $TO_KILL -s HUP $TO_HUP hpodder update
Это будет работать hpodder update
, пока это не закончится, или 42 минуты передали, когда это будет отправлено (см. man 7 signal
), HUP
сигнал. Если hpodder update
будет все еще бежать за 45 минутами (спустя 3 минуты после того, как эти HUP
был отправлен), то это будет отправлено неуловимое KILL
сигнал и будет завершено.