locked
control de un servicio en ejecución RRS feed

  • Pregunta

  • Buenas.

     

    vaemos si me posdeis ayudar: necesito una bateria que me verifique si un servicio está ejecutandose y si no lo está, que lo arranque, pero si no arranca, que lo intente por ejemplo 5 veces

     

    no se si me he explicado.

     

    S2.

    sábado, 8 de diciembre de 2007 21:19

Respuestas

  • Por ejemplo:

     

    @echo off
    set /a i=0
    :bucle
    for /f "tokens=3 delims=: " %%i in ('sc query %1 ^| find "STATE"') do if {%%i} EQU {RUNNING} goto :EOF
    for /f "tokens=3 delims=: " %%i in ('sc query %1 ^| find "STATE"') do if {%%i} EQU {STOPPED} sc start %1
    set /a i+=1
    if %i% GTR 5 goto :EOF
    >nul ping -n 30 localhost
    goto :bucle

     

    Se invocaría pasandole como parámetro el nombre del servicio a arrancar o a controlar. Creo que es sencillo, si tienes alguna duda comentame. 

     

    Un saludo,

    sábado, 8 de diciembre de 2007 21:23
  • Una cosa, tengo windows en inglés, y no se las respuestas dell comando SC si estaran traducidas. Para verificarlo, si tuvieses en español, ejecuta en una consola arrancada en modo elevado:

     

    sc query nombreservicio

     

    Y mira si las palabbras STATE, RUNNING, STOPPED siguen en ingles o estan traducidas. Si lo estuvieses, cambialas en el script.

     

    Un saludo,

    sábado, 8 de diciembre de 2007 21:26

Todas las respuestas

  • Por ejemplo:

     

    @echo off
    set /a i=0
    :bucle
    for /f "tokens=3 delims=: " %%i in ('sc query %1 ^| find "STATE"') do if {%%i} EQU {RUNNING} goto :EOF
    for /f "tokens=3 delims=: " %%i in ('sc query %1 ^| find "STATE"') do if {%%i} EQU {STOPPED} sc start %1
    set /a i+=1
    if %i% GTR 5 goto :EOF
    >nul ping -n 30 localhost
    goto :bucle

     

    Se invocaría pasandole como parámetro el nombre del servicio a arrancar o a controlar. Creo que es sencillo, si tienes alguna duda comentame. 

     

    Un saludo,

    sábado, 8 de diciembre de 2007 21:23
  • Una cosa, tengo windows en inglés, y no se las respuestas dell comando SC si estaran traducidas. Para verificarlo, si tuvieses en español, ejecuta en una consola arrancada en modo elevado:

     

    sc query nombreservicio

     

    Y mira si las palabbras STATE, RUNNING, STOPPED siguen en ingles o estan traducidas. Si lo estuvieses, cambialas en el script.

     

    Un saludo,

    sábado, 8 de diciembre de 2007 21:26