2016-12-09 5 views
0

У меня есть 6 сервисов Java и 1 служба Oracle, работающая на моем сервере приложений. Служба Oracle останавливается, когда RAM заполнена. Мне нужен пакетный файл для автоматического запуска при остановке службы Oracle.Oracle service auto start bach file

Но этот командный файл следует проверять непрерывно. Но я не знаю, как был создан командный файл.

Windows Server Task Manager:

windows server task manager

+0

net start OracleServiceCTGINST1 –

+0

Вы можете создать запланированную задачу, запускаемую для перезапуска остановленной службы, или задачу, которая запускает пакет для проверки состояния службы с определенным интервалом. – elzooilogico

+0

Как вы поживаете с нижеследующим ответом, Омер? – halfer

ответ

0

Вы можете создать задачу, которая вызывает на события, но конфиг событие, чтобы вызвать при остановке службы не легко.

Другая точка зрения

Вы можете установить запланированное задание, чтобы запустить пакетный скрипт, чтобы проверить, если служба запущена. Если это не так, он запустит его.

@echo off 
SetLocal EnableDelayedExpansion 

set "user=username" 
set "[email protected]" 
set "host=server_name" 

set "OracleServiceTime=3" 
set "OracleServiceTask=CheckOracle" 
set "OracleServiceName=the_name_of_the_service" 

rem schtasks /query /TN "%OracleServiceTask%" /S "%host%" >NUL 2>&1 
schtasks /query /TN "%OracleServiceTask%" >NUL 2>&1 
if %ERRORLEVEL% EQU 1 (
    rem schtasks /create /SC MINUTE /MO %OracleServiceTime% /TN "%OracleServiceTask%" /RL HIGHEST /TR "%~dpnx0" /S "%host%" /RU "%user%" /RP "%pass%" /F >NUL 2>&1 
    schtasks /create /SC MINUTE /MO %OracleServiceTime% /TN "%OracleServiceTask%" /RL HIGHEST /TR "%~dpnx0" /F >NUL 2>&1 
    if !ERRORLEVEL! NEQ 0 (
    rem if task couldn't be created, message user or whatever. 
) 
) 

tasklist /FI "imagename eq %OracleServiceName%" | find /I "RUNNING" > NUL 2>&1 
if %ERRORLEVEL% EQU 0 goto :EOF 

rem sc "\\%host%" start "%OracleServiceName%" > NUL 2>&1 
sc start "%OracleServiceName%" > NUL 2>&1 
if %ERRORLEVEL% NEQ 0 (
rem if service couldn't be started, message user or whatever. 
) 

EndLocal 
exit/B 

Эта проверка скрипта, если задача существует, если она не затем создать его (в этом случае, чтобы запустить каждые 3 минуты)

Затем проверьте, если служба запущена, и, если нет, Начни это.

Есть две командные строки для schtask /create и sc start. Если сценарий может работать на удаленной системе, вам понадобится синтаксис host user pass.