You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Jean-Baptiste Onofré (Jira)" <ji...@apache.org> on 2021/12/09 10:12:00 UTC

[jira] [Created] (AMQ-8425) Linux start script doesn't work depending of ps command version

Jean-Baptiste Onofré created AMQ-8425:
-----------------------------------------

             Summary: Linux start script doesn't work depending of ps command version
                 Key: AMQ-8425
                 URL: https://issues.apache.org/jira/browse/AMQ-8425
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.16.3
            Reporter: Jean-Baptiste Onofré
            Assignee: Jean-Baptiste Onofré
             Fix For: 5.17.0, 5.16.4


bin/activemq, line 485 reads:

       local RET="`ps -o "pid,args" | grep "^\s*$activemq_pid\s.*java"`"

The problem is (from ps man page):

"By default, ps selects all processes with the same effective user
ID (euid=EUID) as the current user and associated with the same
terminal as the invoker."

Thus, the script essentially will ONLY find a running process
that has been started by the SAME LOGIN-SESSION.

I would say, that is rarely (if ever) the case in real-world scenarios.

For example, you login to your app-server and start ActiveMQ, then logout.
At a later point, you login again (new session) and try to stop ActiveMQ.
But unexpectedly, nothing happens 

The fix was simple, in the line above, add the '-e' flag:

       local RET="`ps -eo "pid,args" | grep "^\s*$activemq_pid\s.*java"`"

ps -e means it will list ALL processes on the host.
Then it works as expected.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)