DJ makrus Цитата: я планирую отлавливать падение процессов java.exe именно по PID'у. Алгоритм примерно такой
Я вообще думал подобным образом, но с созданием в начале cron-файла блока переменных, и отлавливанием не несуществующего процесса, а упавшего процесса (с помощью переменной %WATCH-PROC-ID%).
И PID загнать не в массив, а в переменную VARIABLE.
Labutin Вот кажется рабочая задача, по крайней мере у себя я не смог закрыть прогу (она каждый раз перезапускалась). И у тебя я убрал Time: START-TIME из задач, так удобнее запускать эти задачи. Только пока точно не знаю, какой процесс отлавливать для твоего случая. Сделал cmd.exe
[more=Сам код]
Код: # Создаем глобальные переменные
<%
VARIABLE pid1
VARIABLE pid2
VARIABLE pid3
%>
#( Java1
NoActive
Action:
StartIn: "C:\GRID"
ShowNormal NormalPriority
START-APP: C:\GRID\1_globuscontainer.bat
PROC-ID pid1 !
)#
#( Java2
NoActive
Action:
StartIn: "C:\GRID"
ShowNormal NormalPriority
START-APP: C:\GRID\2_tsi.bat
PROC-ID pid2 !
)#
#( Java3
NoActive
Action:
StartIn: "C:\GRID"
ShowNormal NormalPriority
START-APP: C:\GRID\3_gass.bat
PROC-ID pid3 !
)#
#( run_java
Time: START-TIME
Action:
Java1 RUN \ Запуск 1-ой задачи
Java2 RUN \ Запуск 2-ой задачи
Java3 RUN \ Запуск 3-ей задачи
)#
#( Recovery_java
WatchProcStop: cmd.exe
Action:
S" %WATCH-PROC-ID%" EVAL-SUBST S>NUM \ Преобразуем строкое значение %WATCH-PROC-ID% в число и ложим его на стек
CASE \ Сравнение PID убитого процесса с PID наших задач
pid1 @ OF Java1 RUN ENDOF
pid2 @ OF Java2 RUN ENDOF
pid3 @ OF Java3 RUN ENDOF
ENDCASE
)#