Войти

Показать полную графическую версию : Автоматический запуск CMD-файла если не запущен процесс


kirillius
26-10-2016, 14:08
Здравствуйте.

Имеется CMD-файл запускающий инфокиоск написанный на Java:

"C:\Program Files\Java\jre1.8.0_31\bin\java.exe" -Xmx1g -jar kiosk.jar --host=IP_ADRESS_HOSTA --quenumber=1 --typekiosk=ALL --waitprint=10

Но столкнулись с проблемой что время от времени киоск падает.
Задача - автоматически запускать этот CMD-файл если киоск не работает.

Просьба помочь, или указать на тему, которая поможет.
В данном случае не понятно, в этом же файле делать какую-то проверку на процессы и перезапускать всё, либо же создавать другой файл, запускающий этот при отсутствии нужного процесса...
Или, может, существует способ проще?

Iska
26-10-2016, 23:52
В данном случае не понятно, в этом же файле делать какую-то проверку на процессы и перезапускать всё, либо же создавать другой файл, запускающий этот при отсутствии нужного процесса... »
Как выглядит это:
киоск падает. »
с точки зрения процессов?

kirillius
27-10-2016, 07:17
с точки зрения процессов? »

Падают процессы cmd.exe и java.exe (первый - запущенный батник, второй - то, что он запускает).
Кто падает первый и почему - не ясно...

Iska
27-10-2016, 08:19
Падают процессы cmd.exe и java.exe »
Ну, первый не падает, а банально завершает свою работу после исполнения пакетного файла.

Полагаю, всё, что Вам нужно — зациклить исполнение внутри пакетного файла (если нет нужды как-то завершать работу «киоска» легальным образом:
@echo off

:Repeat
"C:\Program Files\Java\jre1.8.0_31\bin\java.exe" -Xmx1g -jar kiosk.jar --host=IP_ADRESS_HOSTA --quenumber=1 --typekiosk=ALL --waitprint=10
goto :Repeat
Если окажется, что происходит массовый запуск «java.exe» (я не имею возможности проверить) — попробуйте использовать ожидание в виде:
start "" /wait "C:\Program Files\Java\jre1.8.0_31\bin\java.exe" -Xmx1g -jar kiosk.jar --host=IP_ADRESS_HOSTA --quenumber=1 --typekiosk=ALL --waitprint=10

kirillius
27-10-2016, 11:43
Iska, спасибо. Первый способ заработал. Если убить процесс java.exe - киоск перезапускается. Послежу за поведением киоска. Просто я не уверен, что падает именно он. Если завершается cmd.exe по какой-то причине, надо что-то другое придумывать...

Iska
27-10-2016, 13:00
Если завершается cmd.exe по какой-то причине, надо что-то другое придумывать... »
Если бы падал именно командный процессор — на java это бы никак не отразилось, «киоск» бы продолжал работать.

kirillius
27-10-2016, 13:05
Если бы падал именно командный процессор — на java это бы никак не отразилось, «киоск» бы продолжал работать. »

В том-то и дело, что если закрыть окошко командной строки вручную - киоск работать перестаёт.

Iska
27-10-2016, 14:42
В том-то и дело, что если закрыть окошко командной строки вручную - киоск работать перестаёт. »
Если java.exe — консольное приложение (я проверить не могу, можете сами) и работает в той же консоли — то так и должно быть.

kirillius
27-10-2016, 14:48
java.exe — консольное приложение (я проверить не могу, можете сами) и работает в той же консоли »

Да, так и есть. Консольное.
В общем, пока всё работает, вроде не падало (или если падало то само перезапускалось) - пока не жаловались. Погоняем ещё, если валиться не будет, будем считать что проблема рашена.
Если отвалится - отпишу. Спасибо за помощь!




© OSzone.net 2001-2012