Isn't there a bug in the ActiveMQ-5.16.3 Linux start-script? 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.