Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Автоматический запуск CMD-файла если не запущен процесс (http://forum.oszone.net/showthread.php?t=320158)

kirillius 26-10-2016 14:08 2681809

Автоматический запуск CMD-файла если не запущен процесс
 
Здравствуйте.

Имеется 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 2681973

Цитата:

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

Как выглядит это:
Цитата:

Цитата kirillius
киоск падает. »

с точки зрения процессов?

kirillius 27-10-2016 07:17 2682002

Цитата:

Цитата Iska
с точки зрения процессов? »

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

Iska 27-10-2016 08:19 2682006

Цитата:

Цитата kirillius
Падают процессы 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 2682064

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

Iska 27-10-2016 13:00 2682090

Цитата:

Цитата kirillius
Если завершается cmd.exe по какой-то причине, надо что-то другое придумывать... »

Если бы падал именно командный процессор — на java это бы никак не отразилось, «киоск» бы продолжал работать.

kirillius 27-10-2016 13:05 2682094

Цитата:

Цитата Iska
Если бы падал именно командный процессор — на java это бы никак не отразилось, «киоск» бы продолжал работать. »

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

Iska 27-10-2016 14:42 2682116

Цитата:

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

Если java.exe — консольное приложение (я проверить не могу, можете сами) и работает в той же консоли — то так и должно быть.

kirillius 27-10-2016 14:48 2682118

Цитата:

Цитата Iska
java.exe — консольное приложение (я проверить не могу, можете сами) и работает в той же консоли »

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


Время: 22:24.

Время: 22:24.
© OSzone.net 2001-