[ https://issues.apache.org/jira/browse/DAEMON-470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17945070#comment-17945070 ]
Gary D. Gregory commented on DAEMON-470: ---------------------------------------- FYI, Tomcat 11.0.6 ships with Commons Daemon 1.4.1's native apps. > Service Stop Returns True, but the service is still running in the background > ----------------------------------------------------------------------------- > > Key: DAEMON-470 > URL: https://issues.apache.org/jira/browse/DAEMON-470 > Project: Commons Daemon > Issue Type: Bug > Components: Procrun > Affects Versions: 1.3.3, 1.3.4 > Environment: Windows Server 2019 Datacenter > tomcat9 -> This issue is intermittent for version 9.0.102+ up to tomcat11 > tomcat issue created: [69642 - net stop tomcat service returns turn but > tomcat.exe is still running in the > background|https://bz.apache.org/bugzilla/show_bug.cgi?id=69642] > Reporter: Dhruva Madhukar Bhatia > Priority: Major > Attachments: common-daemonlog-relevant, > serviceNotStoppedMemoryRiseCropped.PNG, tomcatLogsFile > > > Tomcat uses common-daemon to install services. > We installed a tomcat service using > {code:java} > tomcat9.exe //US//TomcatService <-options>{code} > When we run > {code:java} > net stop TomcatService{code} > we get a response > {code:java} > The Apache Tomcat 9.0 TomcatService service was stopped successfully.{code} > However, if we check the currently running process we see that tomcat.exe is > still running in the background. As can be seen from the attached tomcat logs > as below: > {code:java} > org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: destroy called > 08:51:12,069 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_APPLICATION] - Worker > thread will flush remaining events before exiting. > 08:51:12,070 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_APPLICATION] - Queue > flush finished successfully within timeout. > 08:51:12,070 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_COMMUNICATION] - Worker > thread will flush remaining events before exiting. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_COMMUNICATION] - Queue > flush finished successfully within timeout. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_DATABASE] - Worker thread > will flush remaining events before exiting. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_DATABASE] - Queue flush > finished successfully within timeout. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_CONFIGURATION] - Worker > thread will flush remaining events before exiting. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_CONFIGURATION] - Queue > flush finished successfully within timeout. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SCRIPT_ERROR] - Worker > thread will flush remaining events before exiting. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SCRIPT_ERROR] - Queue > flush finished successfully within timeout. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SCRIPT] - Worker thread > will flush remaining events before exiting. > 08:51:12,071 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SCRIPT] - Queue flush > finished successfully within timeout. > 08:51:12,072 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SECURITY] - Worker thread > will flush remaining events before exiting. > 08:51:12,072 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_SECURITY] - Queue flush > finished successfully within timeout. > 08:51:12,072 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_ERROR] - Worker thread > will flush remaining events before exiting. > 08:51:12,072 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_ERROR] - Queue flush > finished successfully within timeout. > 08:51:12,072 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_AUTH] - Worker thread > will flush remaining events before exiting. > 08:51:12,072 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_AUTH] - Queue flush > finished successfully within timeout. > 08:51:12,073 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_AKKA] - Worker thread > will flush remaining events before exiting. > 08:51:12,073 |-INFO in > ch.qos.logback.classic.AsyncAppender[ASYNC_APPENDER_AKKA] - Queue flush > finished successfully within timeout. > >>>>>>>> TERMINATING JVM <<<<<<<<<< > >>>>>>>> CALLING SYSTEM EXIT <<<<<<<<<<{code} > the service stopped at 8:51:12, > however after repeatedly checking for any running tomcat.exe process, we see > that the service was actually stopped at 8:51:24 -> > {code:java} > Thu Apr 3 08:51:23 CUT 2025 > tomcat9.exe 1364 Services 0 1,417,944 K > Thu Apr 3 08:51:24 CUT 2025 > tomcat9.exe 1364 Services 0 901,252 K > Thu Apr 3 08:51:24 CUT 2025 > tomcat9.exe 1364 Services 0 355,456 K{code} > Below are the common-daemons logs when stopped successfully and when it fails: > > {code:java} > When stopped successfully: > [2025-04-03 08:49:58] [2025-04-03 08:50:01] [info] [ 5840] Apache Commons > Daemon procrun (1.4.1.0 64-bit) started. > [2025-04-03 08:50:01] [info] [ 5840] Running Service > 'ThingWorx-Foundation'... > [2025-04-03 08:50:01] [info] [ 3484] Starting service... > [2025-04-03 08:50:02] [info] [ 3484] Service started in 1290 milliseconds. > [2025-04-03 08:50:33] [info] [ 5840] Service SERVICE_CONTROL_STOP signalled. > [2025-04-03 08:50:33] [info] [ 2740] Stopping service... > [2025-04-03 08:50:35] [error] [ 5732] Failed to set service status. > [2025-04-03 08:50:36] [error] [ 5732] The handle is invalid. > [2025-04-03 08:50:36] [2025-04-03 08:50:38] [info] [ 7056] Apache Commons > Daemon procrun (1.4.1.0 64-bit) started. > When not stopped properly (process running) > [2025-04-03 08:50:36] [2025-04-03 08:50:38] [info] [ 7056] Apache Commons > Daemon procrun (1.4.1.0 64-bit) started. > [2025-04-03 08:50:38] [info] [ 7056] Running Service > 'ThingWorx-Foundation'... > [2025-04-03 08:50:38] [info] [ 6912] Starting service... > [2025-04-03 08:50:40] [info] [ 6912] Service started in 1436 milliseconds. > [2025-04-03 08:51:09] [info] [ 7056] Service SERVICE_CONTROL_STOP signalled. > [2025-04-03 08:51:09] [info] [ 376] Stopping service... > [2025-04-03 08:51:12] [error] [ 3000] Failed to set service status. > [2025-04-03 08:51:12] [info] [ 7056] Run service finished. > [2025-04-03 08:51:12] [info] [ 7056] Apache Commons Daemon procrun finished. > [2025-04-03 08:51:24] [info] [ 7300] Apache Commons Daemon procrun (1.4.1.0 > 64-bit) started. > {code} > We've already created this issue in the tomcat forum: > [69642 - net stop tomcat service returns turn but tomcat.exe is still running > in the background|https://bz.apache.org/bugzilla/show_bug.cgi?id=69642] > Where we were guided to report the issue here. -- This message was sent by Atlassian Jira (v8.20.10#820010)