es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“Springboot jar como servicio de ventana”

Estoy tratando de ejecutar un archivo jar de Spring Boot como servicio de Windows y logré hacerlo usando el siguiente script. Genera dos procesos, prunsrv.exe y java.exe.

Sin embargo, al detener el servicio, solo se detiene prunsrv.exe (usando //SS//Myservice), pero puedo ver que el proceso java.exe sigue en ejecución y tengo que finalizarlo usando el administrador de tareas.

¿Cómo puedo detener ambos procesos al mismo tiempo para que no tenga que buscar el proceso en el administrador de tareas para terminarlo?

set "CLASSPATH=D:\temp-1.0.0.jar"

prunsrv.exe //IS//%SERVICENAME% ^
    --Description "Myservice" ^
    --DisplayName "%DISPLAYNAME%" ^
    --Install "%EXECUTABLE%" ^
    --LogPath "D:\MyService" ^
    --Startup auto ^
    --StdOutput auto ^
    --StdError auto ^
    --Classpath "%CLASSPATH%" ^
    --Jvm "%JVM%" ^
    --StartImage "%JAVAHOME%\bin\java.exe" ^
    --StartMethod start ^
    --StopMethod stop ^
    --StartMode exe ^
    --StopMode java ^
    --StartPath "D:\MyService" ^
    --StopPath "D:\MyService" ^
    --StartClass com.darth.MyService ^
    --StopClass com.darth.MyService ^
    --StartParams -jar#%CLASSPATH% ^
    --StopParams stop ^
    --JvmMs 1024 ^
    --JvmMx 6144 
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás buscando una manera de detener tanto los procesos prunsrv.exe como java.exe al mismo tiempo cuando se detiene el servicio.

    Una forma de hacer esto es usar la opción --StopMode exe en el comando prunsrv.exe. Esto hará que el proceso prunsrv.exe termine el proceso java.exe cuando se detiene el servicio.

    El comando actualizado se vería así:

    set "CLASSPATH=D:\temp-1.0.0.jar"
    
    prunsrv.exe //IS//%SERVICE_NAME% ^
        --Description "Myservice" ^
        --DisplayName "%DISPLAYNAME%" ^
        --Install "%EXECUTABLE%" ^
        --LogPath "D:\MyService" ^
        --Startup auto ^
        --StdOutput auto ^
        --StdError auto ^
        --Classpath "%CLASSPATH%" ^
        --Jvm "%JVM%" ^
        --StartImage "%JAVA_HOME%\bin\java.exe" ^
        --StartMethod start ^
        --StopMethod stop ^
        --StartMode exe ^
        --StopMode exe ^
        --StartPath "D:\MyService" ^
        --StopPath "D:\MyService" ^
        --StartClass com.darth.MyService ^
        --StopClass com.darth.MyService ^
        --StartParams -jar#%CLASSPATH% ^
        --StopParams stop ^
        --JvmMs 1024 ^
        --JvmMx 6144 
    

Comments are closed.