Systemctl inicia el error de Tomcat incorporado

Systemctl inicia el error de Tomcat incorporado

Tengo un proyecto java con Tomcat 8.5 integrado. Agregué un nuevo servicio a sytemd para ejecutarlo como servicio en CentOS 7.2. Cuando uso "systemctl start app.service" para iniciar el servidor, el programa se detendrá en

"Aug 16, 2018 5:54:13 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.5.32"  

Utilicé el comando "jstack" para verificar el proceso y luego obtuve la siguiente información:

    2018-08-16 18:28:34
    Volcado completo de subprocesos Java HotSpot(TM) VM de servidor de 64 bits (modo mixto 25.152-b16):

    "Adjuntar escucha" #14 daemon prio=9 os_prio=0 tid=0x00007fe804001000 nid=0x19a5 esperando en condición [0x00000000000000000]
       java.lang.Thread.State: EJECUTABLE

    "localhost-startStop-1" #13 demonio prio=5 os_prio=0 tid=0x00007fe7e0001800 nid=0x190c ejecutable [0x00007fe8204a8000]
       java.lang.Thread.State: EJECUTABLE
        en java.io.UnixFileSystem.getBooleanAttributes0 (método nativo)
        en java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
        en java.io.File.isDirectory(File.java:849)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2011)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2020)
        en org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1963)
        en org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1913)
        en org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1153)
        en org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:765)
        - bloqueado (un org.apache.catalina.startup.ContextConfig)
        en org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
        en org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
        en org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
        - bloqueado (un org.apache.catalina.core.StandardContext)
        en org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        - bloqueado (un org.apache.catalina.core.StandardContext)
        en org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1421)
        en org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1411)
        en java.util.concurrent.FutureTask.run(FutureTask.java:266)
        en java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        en java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        en java.lang.Thread.run(Thread.java:748)

    "Tomcat-startStop-1" #12 daemon prio=5 os_prio=0 tid=0x00007fe8486d7000 nid=0x190b esperando en condición [0x00007fe8205ad000]
       java.lang.Thread.State: ESPERANDO (estacionamiento)
        en sun.misc.Unsafe.park (método nativo)
        - estacionamiento para esperar (un java.util.concurrent.FutureTask)
        en java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        en java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
        en java.util.concurrent.FutureTask.get(FutureTask.java:191)
        en org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:941)
        - bloqueado (un org.apache.catalina.core.StandardHost)
        en org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
        - bloqueado (un org.apache.catalina.core.StandardHost)
        en org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        - bloqueado (un org.apache.catalina.core.StandardHost)
        en org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1421)
        en org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1411)
        en java.util.concurrent.FutureTask.run(FutureTask.java:266)
        en java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        en java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        en java.lang.Thread.run(Thread.java:748)

    "NioBlockingSelector.BlockPoller-1" #11 demonio prio=5 os_prio=0 tid=0x00007fe8486c3800 nid=0x190a ejecutable [0x00007fe8206ae000]
       java.lang.Thread.State: EJECUTABLE
        en sun.nio.ch.EPollArrayWrapper.epollWait(Método nativo)
        en sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
        en sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
        en sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
        - bloqueado (un sun.nio.ch.Util$3)
        - bloqueado (un java.util.Collections$UnmodifiableSet)
        - bloqueado (un sun.nio.ch.EPollSelectorImpl)
        en sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
        en org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:298)

    "Subproceso de servicio" #9 daemon prio=9 os_prio=0 tid=0x00007fe848102800 nid=0x1902 ejecutable [0x00000000000000000]
       java.lang.Thread.State: EJECUTABLE

    "C1 CompilerThread2" #8 daemon prio=9 os_prio=0 tid=0x00007fe8480ff800 nid=0x1901 esperando en condición [0x0000000000000000]
       java.lang.Thread.State: EJECUTABLE

    "C2 CompilerThread1" #7 daemon prio=9 os_prio=0 tid=0x00007fe8480fd800 nid=0x1900 esperando en condición [0x0000000000000000]
       java.lang.Thread.State: EJECUTABLE

    "C2 CompilerThread0" #6 daemon prio=9 os_prio=0 tid=0x00007fe8480fb000 nid=0x18ff esperando en condición [0x0000000000000000]
       java.lang.Thread.State: EJECUTABLE

    "Distribuidor de señales" #5 demonio prio=9 os_prio=0 tid=0x00007fe8480f9000 nid=0x18fe ejecutable [0x00000000000000000]
       java.lang.Thread.State: EJECUTABLE

    "Subproceso de casillero sustituto (GC concurrente)" #4 daemon prio=9 os_prio=0 tid=0x00007fe8480f7800 nid=0x18fd esperando en condición [0x0000000000000000]
       java.lang.Thread.State: EJECUTABLE

    "Finalizador" #3 demonio prio=8 os_prio=0 tid=0x00007fe8480c4000 nid=0x18fc en Object.wait() [0x00007fe821dfc000]
       java.lang.Thread.State: ESPERANDO (en el monitor de objetos)
        en java.lang.Object.wait (método nativo)
        en java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
        - bloqueado (un java.lang.ref.ReferenceQueue$Lock)
        en java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
        en java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

    "Manejador de referencia" #2 daemon prio=10 os_prio=0 tid=0x00007fe8480bf800 nid=0x18fb en Object.wait() [0x00007fe821efd000]
       java.lang.Thread.State: ESPERANDO (en el monitor de objetos)
        en java.lang.Object.wait (método nativo)
        en java.lang.Object.wait(Object.java:502)
        en java.lang.ref.Reference.tryHandlePending(Reference.java:191)
        - bloqueado (un java.lang.ref.Reference$Lock)
        en java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

    "principal" #1 prio=5 os_prio=0 tid=0x00007fe84800b800 nid=0x18f4 esperando en condición [0x00007fe8509c5000]
       java.lang.Thread.State: ESPERANDO (estacionamiento)
        en sun.misc.Unsafe.park (método nativo)
        - estacionamiento para esperar (un java.util.concurrent.FutureTask)
        en java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        en java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
        en java.util.concurrent.FutureTask.get(FutureTask.java:191)
        en org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:941)
        - bloqueado (un org.apache.catalina.core.StandardEngine)
        en org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
        - bloqueado (un org.apache.catalina.core.StandardEngine)
        en org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        - bloqueado (un org.apache.catalina.core.StandardEngine)
        en org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
        - bloqueado (un org.apache.catalina.core.StandardEngine)
        en org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        - bloqueado (un org.apache.catalina.core.StandardService)
        en org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
        - bloqueado (un java.lang.Object)
        en org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        - bloqueado (un org.apache.catalina.core.StandardServer)
        en org.apache.catalina.startup.Tomcat.start(Tomcat.java:367)
        en app.test.server.HttpServer.startServer(HttpServer.java:107)
        en app.test.ServerBootstrap.main(ServerBootstrap.java:27)

    "Subproceso de VM" os_prio=0 tid=0x00007fe8480b7800 nid=0x18fa ejecutable

    "Trabajador de pandillas n.° 0 (subprocesos de GC paralelos)" os_prio=0 tid=0x00007fe84801c800 nid=0x18f5 ejecutable

    "Trabajador de grupo n.º 1 (subprocesos de GC paralelos)" os_prio=0 tid=0x00007fe84801e000 nid=0x18f6 ejecutable

    "Trabajador de pandillas n.º 2 (subprocesos de GC paralelos)" os_prio=0 tid=0x00007fe848020000 nid=0x18f7 ejecutable

    "Trabajador de pandillas n.º 3 (subprocesos de GC paralelos)" os_prio=0 tid=0x00007fe848022000 nid=0x18f8 ejecutable

    "Subproceso GC de barrido y marca simultáneo" os_prio=0 tid=0x00007fe848065000 nid=0x18f9 ejecutable

    "Subproceso de tarea periódica de VM" os_prio=0 tid=0x00007fe848108000 nid=0x1903 esperando en condición

    Referencias globales de JNI: 64

He descubierto que hay

  • bloqueado <0x00000006cb0240e0> (un org.apache.catalina.startup.ContextConfig)

Mi script de servicio en "/etc/systemd/system" es:

    [Unidad]
    Descripción=aplicación de prueba
    Después=red.objetivo
    [Servicio]
    Tipo = bifurcación
    ExecStart=/test/app/startup.sh
    [Instalar]
    WantedBy=multiusuario.objetivo

El contenido de mi script startup.sh es:

      #!/bin/sh
      LIB=/prueba/aplicación/lib
      CONFIG_FILE_PATH=/test/app/config
      CP=.:$RUTA DE CLASE
      para f en ${LIB}/*.*;
        hacer CP=${CP}:$f;
      hecho
      CP=${CP}:${CONFIG_FILE_PATH};

      exportar CLASSPATH=$CP
      nohup /usr/local/jdk1.7.0_80/bin/java -classpath $CLASSPATH app.test.ServerBootstrap ${CONFIG_FILE_PATH} >> test.out 2>&1 &

Cuando ejecuto mi script "startup.sh", no hay ningún problema. Cuando uso el comando "systemctl", el programa se detendrá, pero el proceso seguirá ejecutándose.

¿Cómo puedo solucionar este problema? ¿Existe alguna diferencia entre ejecutar un script de shell y el comando "systemctl"?

información relacionada