activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Green (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-5733) kill -9 always results in failure signal
Date Tue, 21 Apr 2015 07:14:00 GMT

    [ https://issues.apache.org/jira/browse/AMQ-5733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14504480#comment-14504480
] 

James Green commented on AMQ-5733:
----------------------------------

Briefly reading http://stackoverflow.com/questions/191215/how-to-stop-java-process-gracefully
and https://major.io/2010/03/18/sigterm-vs-sigkill/ perhaps it should follow the follow the
following strategy:

1. Attempt to send shutdown via JMX (a lot of people do not enable JMX or have it misconfigured)
2. Attempt to kill <PID> allowing a JVM shutdown hook to gracefully bring down the process
3. Terminate forcefully with kill -9 <PID>

In each case poll for the presence of the PID in the process list, and if it goes ensure the
PID file is removed.
 

> kill -9 always results in failure signal
> ----------------------------------------
>
>                 Key: AMQ-5733
>                 URL: https://issues.apache.org/jira/browse/AMQ-5733
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Distribution
>    Affects Versions: 5.11.1
>            Reporter: James Green
>
> Using https://github.com/rgevaert/activemq2deb I am trying to distribute upgrades to
our fleet. This results in failure each time.
> Looking into the matter the activemq script tries to stop the broker via JMX. This is
not configured, so fails.
> It falls back to issuing "kill -9 <PID>" then immediately exits with code 1. This
code 1 causes the packaging script to bail and thus we end up with a mess.
> A possible solution is to return the "kill" command's own result. This doesn't necessarily
reflect whether "kill" succeeded in terminating the PID however.
> A second possible solution is to detect the presence of 'start-stop-daemon' and use this
in preference. Narrows down the cases in which it does not work at least.
> I am of the opinion that a script aiming of cross-platform compatibility is probably
never going to work completely so detecting and making use of per-system tooling is probably
best long term, meantime would returning "kill's" exit code help?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message