activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Schöchlin (JIRA) <j...@apache.org>
Subject [jira] [Commented] (AMQ-2920) new ActiveMQ 5.4.0 sysv start script redirects process stdout and stderr to /dev/null
Date Tue, 10 Sep 2013 14:21:02 GMT

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

Marc Schöchlin commented on AMQ-2920:
-------------------------------------

I fully agree, this might be a real pain for debugging production problems.
Threaddumps can also be collected 

I suppressed all messages on STDOUT/STDERR in the implementation of the new init script because
this logfile cannot be rotated by log4j.


I think it would be really useful to redirect STDOUT/STDERR to the activemq logfile.
As i can remember JBOSS also does this, probably the sourcecode might be useful for changing
this.
Probably a redirected logger fails i.e in situations with memory problems - i don't know how
jboss handles these types of problems.

Alternative way: 
 * Reconfigure log4j not to log regular log messages to STDOUT/STDERR
   (this logfile is not rotated, therefore only really essential/critical things should be
logged in this file)
 * Modify sys-v init script to provide the possibility to log messages to a logfile specified
in /etc/default/activemq or $HOME/.activemqrc
   (see appended patch)


{code}
$ LANG=C diff -u activemq.orig activemq
--- activemq.orig	2013-09-10 16:02:36.221780777 +0200
+++ activemq	2013-09-10 16:13:38.813794912 +0200
@@ -214,6 +214,10 @@
     ACTIVEMQ_KILL_MAXSECONDS=30
 fi
 
+# LOG STDERR/STDOUT to this file 
+# (be careful, because this logfile is not under logrotation)
+ACTIVEMQ_CONSOLE_LOG="/dev/null"
+
 ## END:DEFAULTCONFIG
 
 # ------------------------------------------------------------------------
@@ -393,6 +397,8 @@
    fi
    # Execute java binary
    if [ -n "$PIDFILE" ] && [ "$PIDFILE" != "stop" ];then
+
+      echo "INFO: redirecting activemq stderr/stdout to $ACTIVEMQ_CONSOLE_LOG"
       $DOIT_PREFIX "$JAVACMD $ACTIVEMQ_OPTS $ACTIVEMQ_DEBUG_OPTS \
               -Dactivemq.classpath=\"${ACTIVEMQ_CLASSPATH}\" \
               -Dactivemq.home=\"${ACTIVEMQ_HOME}\" \
@@ -400,7 +406,7 @@
               -Dactivemq.conf=\"${ACTIVEMQ_CONF}\" \
               -Dactivemq.data=\"${ACTIVEMQ_DATA}\" \
               $ACTIVEMQ_CYGWIN \
-              -jar \"${ACTIVEMQ_HOME}/bin/activemq.jar\" $COMMANDLINE_ARGS >/dev/null
2>&1 &
+              -jar \"${ACTIVEMQ_HOME}/bin/activemq.jar\" $COMMANDLINE_ARGS >$ACTIVEMQ_CONSOLE_LOG
2>&1 &
               RET=\"\$?\"; APID=\"\$!\";
               echo \$APID > $PIDFILE;
               echo \"INFO: pidfile created : '$PIDFILE' (pid '\$APID')\";exit \$RET" $DOIT_POSTFIX
@@ -691,4 +697,4 @@
     ;;
   *)
     invoke_task
-esac
\ No newline at end of file
+esac
{code}


                
> new ActiveMQ 5.4.0 sysv start script redirects process stdout and stderr to /dev/null
> -------------------------------------------------------------------------------------
>
>                 Key: AMQ-2920
>                 URL: https://issues.apache.org/jira/browse/AMQ-2920
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.0
>            Reporter: Mats Henrikson
>            Assignee: Gary Tully
>             Fix For: 5.6.0
>
>
> It appears that the new sysV start/init script redirects all the process output to /dev/null
when starting the broker.
> This leads to pain and confusion, since you will not see any error output when you have
e.g. a non-compliant activemq.xml config file - the script just completes successfully but
your broker has not started. To see the output you actually have to hack the init script to
remove the /dev/null, or get the script to output the command line so that you can run it
by hand to get the error output.
> The process output should probably be redirected to some log file in the data directory.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message