Показать полную графическую версию : Автоматический запуск 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-файл если киоск не работает.
Просьба помочь, или указать на тему, которая поможет.
В данном случае не понятно, в этом же файле делать какую-то проверку на процессы и перезапускать всё, либо же создавать другой файл, запускающий этот при отсутствии нужного процесса...
Или, может, существует способ проще?
В данном случае не понятно, в этом же файле делать какую-то проверку на процессы и перезапускать всё, либо же создавать другой файл, запускающий этот при отсутствии нужного процесса... »
Как выглядит это:
киоск падает. »
с точки зрения процессов?
kirillius
27-10-2016, 07:17
с точки зрения процессов? »
Падают процессы cmd.exe и java.exe (первый - запущенный батник, второй - то, что он запускает).
Кто падает первый и почему - не ясно...
Падают процессы 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 по какой-то причине, надо что-то другое придумывать...
Если завершается cmd.exe по какой-то причине, надо что-то другое придумывать... »
Если бы падал именно командный процессор — на java это бы никак не отразилось, «киоск» бы продолжал работать.
kirillius
27-10-2016, 13:05
Если бы падал именно командный процессор — на java это бы никак не отразилось, «киоск» бы продолжал работать. »
В том-то и дело, что если закрыть окошко командной строки вручную - киоск работать перестаёт.
В том-то и дело, что если закрыть окошко командной строки вручную - киоск работать перестаёт. »
Если java.exe — консольное приложение (я проверить не могу, можете сами) и работает в той же консоли — то так и должно быть.
kirillius
27-10-2016, 14:48
java.exe — консольное приложение (я проверить не могу, можете сами) и работает в той же консоли »
Да, так и есть. Консольное.
В общем, пока всё работает, вроде не падало (или если падало то само перезапускалось) - пока не жаловались. Погоняем ещё, если валиться не будет, будем считать что проблема рашена.
Если отвалится - отпишу. Спасибо за помощь!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.