автоматический перезапуск командных файлов - PullRequest
1 голос
/ 17 февраля 2012

Я приношу свои извинения, если этот вопрос задавался ранее, но я не смог найти правильного соответствия с моей ситуацией.

У меня есть некоторые командные файлы, они всегда работают из-за выполняющейся внутри них java-программы.Однако иногда они терпят крах, и так как я не наблюдаю за ними, проходит некоторое количество времени, пока я не перезапущу их.

Я хочу спросить, есть ли способ контролировать эти пакетные файлы или как я могу перезапустить эти пакетные файлы, даже если они вылетят.Я запускаю эти файлы в Windows XP.

Спасибо

Ответы [ 3 ]

1 голос
/ 17 февраля 2012

Вы можете запустить пакетный файл из другого пакетного файла в цикле. Когда он запущен, цикл ждет. Как только он выходит из строя - цикл начинает его заново.

1 голос
/ 17 февраля 2012
0 голосов
/ 17 февраля 2012

Замените каждый вызов java циклом goto, который вызывает java через cmd.exe. Условно зацикливайтесь, только если Java-программа завершилась с ошибкой.

.
.
:javaLoop
cmd /c java yourJavaProg || goto :javaLoop
.
.

Возможно, вы захотите защититься от бесконечного быстрого цикла в случае полного отказа, добавив счетчик, чтобы ограничить количество повторных запусков. Другая возможность заключается в том, чтобы записать время и перезапустить его, только если с момента последнего перезапуска прошло минимальное количество времени. Или, возможно, сочетание обоих.

РЕДАКТИРОВАТЬ - Если подумать, вам может не понадобиться CMD / C. Он может нормально работать, просто вызывая Java напрямую и условно зацикливаясь при ошибке.

...