mirror of https://github.com/apache/activemq.git
added option for running ActiveMQ with Java Service Wrapper on Linux and Windows.
git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@425685 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8176dca67f
commit
fdde1661cb
|
@ -0,0 +1,521 @@
|
|||
#! /bin/sh
|
||||
|
||||
# Application
|
||||
APP_NAME="ActiveMQ"
|
||||
APP_LONG_NAME="ActiveMQ Broker"
|
||||
ACTIVEMQ_HOME="../.."
|
||||
|
||||
# Wrapper
|
||||
WRAPPER_CMD="wrapper"
|
||||
WRAPPER_CONF="wrapper.conf"
|
||||
|
||||
# Priority at which to run the wrapper. See "man nice" for valid priorities.
|
||||
# nice is only used if a priority is specified.
|
||||
PRIORITY=
|
||||
|
||||
# Location of the pid file.
|
||||
PIDDIR="."
|
||||
|
||||
# If uncommented, causes the Wrapper to be shutdown using an anchor file.
|
||||
# When launched with the 'start' command, it will also ignore all INT and
|
||||
# TERM signals.
|
||||
#IGNORE_SIGNALS=true
|
||||
|
||||
# If specified, the Wrapper will be run as the specified user.
|
||||
# IMPORTANT - Make sure that the user has the required privileges to write
|
||||
# the PID file and wrapper.log files. Failure to be able to write the log
|
||||
# file will cause the Wrapper to exit without any way to write out an error
|
||||
# message.
|
||||
# NOTE - This will set the user which is used to run the Wrapper as well as
|
||||
# the JVM and is not useful in situations where a privileged resource or
|
||||
# port needs to be allocated prior to the user being changed.
|
||||
#RUN_AS_USER=
|
||||
|
||||
# The following two lines are used by the chkconfig command. Change as is
|
||||
# appropriate for your application. They should remain commented.
|
||||
# chkconfig: 2345 20 80
|
||||
# description: @app.long.name@
|
||||
|
||||
# Do not modify anything beyond this point
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# Get the fully qualified path to the script
|
||||
case $0 in
|
||||
/*)
|
||||
SCRIPT="$0"
|
||||
;;
|
||||
*)
|
||||
PWD=`pwd`
|
||||
SCRIPT="$PWD/$0"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Resolve the true real path without any sym links.
|
||||
CHANGED=true
|
||||
while [ "X$CHANGED" != "X" ]
|
||||
do
|
||||
# Change spaces to ":" so the tokens can be parsed.
|
||||
SCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
|
||||
# Get the real path to this script, resolving any symbolic links
|
||||
TOKENS=`echo $SCRIPT | sed -e 's;/; ;g'`
|
||||
REALPATH=
|
||||
for C in $TOKENS; do
|
||||
REALPATH="$REALPATH/$C"
|
||||
while [ -h "$REALPATH" ] ; do
|
||||
LS="`ls -ld "$REALPATH"`"
|
||||
LINK="`expr "$LS" : '.*-> \(.*\)$'`"
|
||||
if expr "$LINK" : '/.*' > /dev/null; then
|
||||
REALPATH="$LINK"
|
||||
else
|
||||
REALPATH="`dirname "$REALPATH"`""/$LINK"
|
||||
fi
|
||||
done
|
||||
done
|
||||
# Change ":" chars back to spaces.
|
||||
REALPATH=`echo $REALPATH | sed -e 's;:; ;g'`
|
||||
|
||||
if [ "$REALPATH" = "$SCRIPT" ]
|
||||
then
|
||||
CHANGED=""
|
||||
else
|
||||
SCRIPT="$REALPATH"
|
||||
fi
|
||||
done
|
||||
|
||||
# Change the current directory to the location of the script
|
||||
cd "`dirname "$REALPATH"`"
|
||||
REALDIR=`pwd`
|
||||
|
||||
# If the PIDDIR is relative, set its value relative to the full REALPATH to avoid problems if
|
||||
# the working directory is later changed.
|
||||
FIRST_CHAR=`echo $PIDDIR | cut -c1,1`
|
||||
if [ "$FIRST_CHAR" != "/" ]
|
||||
then
|
||||
PIDDIR=$REALDIR/$PIDDIR
|
||||
fi
|
||||
# Same test for WRAPPER_CMD
|
||||
FIRST_CHAR=`echo $WRAPPER_CMD | cut -c1,1`
|
||||
if [ "$FIRST_CHAR" != "/" ]
|
||||
then
|
||||
WRAPPER_CMD=$REALDIR/$WRAPPER_CMD
|
||||
fi
|
||||
# Same test for WRAPPER_CONF
|
||||
FIRST_CHAR=`echo $WRAPPER_CONF | cut -c1,1`
|
||||
if [ "$FIRST_CHAR" != "/" ]
|
||||
then
|
||||
WRAPPER_CONF=$REALDIR/$WRAPPER_CONF
|
||||
fi
|
||||
|
||||
# Process ID
|
||||
ANCHORFILE="$PIDDIR/$APP_NAME.anchor"
|
||||
PIDFILE="$PIDDIR/$APP_NAME.pid"
|
||||
LOCKDIR="/var/lock/subsys"
|
||||
LOCKFILE="$LOCKDIR/$APP_NAME"
|
||||
pid=""
|
||||
|
||||
# Resolve the location of the 'ps' command
|
||||
PSEXE="/usr/bin/ps"
|
||||
if [ ! -x $PSEXE ]
|
||||
then
|
||||
PSEXE="/bin/ps"
|
||||
if [ ! -x $PSEXE ]
|
||||
then
|
||||
echo "Unable to locate 'ps'."
|
||||
echo "Please report this message along with the location of the command on your system."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Resolve the os
|
||||
DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
|
||||
case "$DIST_OS" in
|
||||
'sunos')
|
||||
DIST_OS="solaris"
|
||||
;;
|
||||
'hp-ux' | 'hp-ux64')
|
||||
DIST_OS="hpux"
|
||||
;;
|
||||
'darwin')
|
||||
DIST_OS="macosx"
|
||||
;;
|
||||
'unix_sv')
|
||||
DIST_OS="unixware"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Resolve the architecture
|
||||
DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]`
|
||||
if [ "$DIST_ARCH" = "unknown" ]
|
||||
then
|
||||
DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
|
||||
fi
|
||||
case "$DIST_ARCH" in
|
||||
'amd64' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 'x86_64')
|
||||
DIST_ARCH="x86"
|
||||
;;
|
||||
'ip27')
|
||||
DIST_ARCH="mips"
|
||||
;;
|
||||
'power' | 'powerpc' | 'power_pc' | 'ppc64')
|
||||
DIST_ARCH="ppc"
|
||||
;;
|
||||
'pa_risc' | 'pa-risc')
|
||||
DIST_ARCH="parisc"
|
||||
;;
|
||||
'sun4u' | 'sparcv9')
|
||||
DIST_ARCH="sparc"
|
||||
;;
|
||||
'9000/800')
|
||||
DIST_ARCH="parisc"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Decide on the wrapper binary to use.
|
||||
# If a 32-bit wrapper binary exists then it will work on 32 or 64 bit
|
||||
# platforms, if the 64-bit binary exists then the distribution most
|
||||
# likely wants to use long names. Otherwise, look for the default.
|
||||
# For macosx, we also want to look for universal binaries.
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
|
||||
if [ -x $WRAPPER_TEST_CMD ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
if [ "$DIST_OS" = "macosx" ]
|
||||
then
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-32"
|
||||
if [ -x $WRAPPER_TEST_CMD ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
|
||||
if [ -x $WRAPPER_TEST_CMD ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-64"
|
||||
if [ -x $WRAPPER_TEST_CMD ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
if [ ! -x $WRAPPER_CMD ]
|
||||
then
|
||||
echo "Unable to locate any of the following binaries:"
|
||||
echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
|
||||
echo " $WRAPPER_CMD-$DIST_OS-universal-32"
|
||||
echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
|
||||
echo " $WRAPPER_CMD-$DIST_OS-universal-64"
|
||||
echo " $WRAPPER_CMD"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
|
||||
if [ -x $WRAPPER_TEST_CMD ]
|
||||
then
|
||||
WRAPPER_CMD="$WRAPPER_TEST_CMD"
|
||||
else
|
||||
if [ ! -x $WRAPPER_CMD ]
|
||||
then
|
||||
echo "Unable to locate any of the following binaries:"
|
||||
echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
|
||||
echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
|
||||
echo " $WRAPPER_CMD"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Build the nice clause
|
||||
if [ "X$PRIORITY" = "X" ]
|
||||
then
|
||||
CMDNICE=""
|
||||
else
|
||||
CMDNICE="nice -$PRIORITY"
|
||||
fi
|
||||
|
||||
# Build the anchor file clause.
|
||||
if [ "X$IGNORE_SIGNALS" = "X" ]
|
||||
then
|
||||
ANCHORPROP=
|
||||
IGNOREPROP=
|
||||
else
|
||||
ANCHORPROP=wrapper.anchorfile=$ANCHORFILE
|
||||
IGNOREPROP=wrapper.ignore_signals=TRUE
|
||||
fi
|
||||
|
||||
# Build the lock file clause. Only create a lock file if the lock directory exists on this platform.
|
||||
if [ -d $LOCKDIR ]
|
||||
then
|
||||
LOCKPROP=wrapper.lockfile=$LOCKFILE
|
||||
else
|
||||
LOCKPROP=
|
||||
fi
|
||||
|
||||
checkUser() {
|
||||
# Check the configured user. If necessary rerun this script as the desired user.
|
||||
if [ "X$RUN_AS_USER" != "X" ]
|
||||
then
|
||||
# Resolve the location of the 'id' command
|
||||
IDEXE="/usr/xpg4/bin/id"
|
||||
if [ ! -x $IDEXE ]
|
||||
then
|
||||
IDEXE="/usr/bin/id"
|
||||
if [ ! -x $IDEXE ]
|
||||
then
|
||||
echo "Unable to locate 'id'."
|
||||
echo "Please report this message along with the location of the command on your system."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
|
||||
then
|
||||
# Already running as the configured user. Avoid password prompts by not calling su.
|
||||
RUN_AS_USER=""
|
||||
fi
|
||||
fi
|
||||
if [ "X$RUN_AS_USER" != "X" ]
|
||||
then
|
||||
# If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be
|
||||
# able to create the lock file. The Wrapper will be able to update this file once it
|
||||
# is created but will not be able to delete it on shutdown. If $2 is defined then
|
||||
# the lock file should be created for the current command
|
||||
if [ "X$LOCKPROP" != "X" ]
|
||||
then
|
||||
if [ "X$2" != "X" ]
|
||||
then
|
||||
# Resolve the primary group
|
||||
RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1`
|
||||
if [ "X$RUN_AS_GROUP" = "X" ]
|
||||
then
|
||||
RUN_AS_GROUP=RUN_AS_USER
|
||||
fi
|
||||
touch $LOCKFILE
|
||||
chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE
|
||||
fi
|
||||
fi
|
||||
|
||||
# Still want to change users, recurse. This means that the user will only be
|
||||
# prompted for a password once.
|
||||
su -m $RUN_AS_USER -c "$REALPATH $1"
|
||||
|
||||
# Now that we are the original user again, we may need to clean up the lock file.
|
||||
if [ "X$LOCKPROP" != "X" ]
|
||||
then
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
# Wrapper is not running so make sure the lock file is deleted.
|
||||
if [ -f $LOCKFILE ]
|
||||
then
|
||||
rm $LOCKFILE
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
getpid() {
|
||||
if [ -f $PIDFILE ]
|
||||
then
|
||||
if [ -r $PIDFILE ]
|
||||
then
|
||||
pid=`cat $PIDFILE`
|
||||
if [ "X$pid" != "X" ]
|
||||
then
|
||||
# It is possible that 'a' process with the pid exists but that it is not the
|
||||
# correct process. This can happen in a number of cases, but the most
|
||||
# common is during system startup after an unclean shutdown.
|
||||
# The ps statement below looks for the specific wrapper command running as
|
||||
# the pid. If it is not found then the pid file is considered to be stale.
|
||||
pidtest=`$PSEXE -p $pid -o args | grep $WRAPPER_CMD | tail -1`
|
||||
if [ "X$pidtest" = "X" ]
|
||||
then
|
||||
# This is a stale pid file.
|
||||
rm -f $PIDFILE
|
||||
echo "Removed stale pid file: $PIDFILE"
|
||||
pid=""
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Cannot read $PIDFILE."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
testpid() {
|
||||
pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
# Process is gone so remove the pid file.
|
||||
rm -f $PIDFILE
|
||||
pid=""
|
||||
fi
|
||||
}
|
||||
|
||||
console() {
|
||||
echo "Running $APP_LONG_NAME..."
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
COMMAND_LINE="$CMDNICE $WRAPPER_CMD $WRAPPER_CONF wrapper.syslog.ident=$APP_NAME wrapper.pidfile=$PIDFILE $ANCHORPROP $LOCKPROP"
|
||||
exec $COMMAND_LINE
|
||||
else
|
||||
echo "$APP_LONG_NAME is already running."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
echo "Starting $APP_LONG_NAME..."
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
COMMAND_LINE="$CMDNICE $WRAPPER_CMD $WRAPPER_CONF wrapper.syslog.ident=$APP_NAME wrapper.pidfile=$PIDFILE wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
|
||||
exec $COMMAND_LINE
|
||||
else
|
||||
echo "$APP_LONG_NAME is already running."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
stopit() {
|
||||
echo "Stopping $APP_LONG_NAME..."
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
echo "$APP_LONG_NAME was not running."
|
||||
else
|
||||
if [ "X$IGNORE_SIGNALS" = "X" ]
|
||||
then
|
||||
# Running so try to stop it.
|
||||
kill $pid
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
# An explanation for the failure should have been given
|
||||
echo "Unable to stop $APP_LONG_NAME."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
rm -f $ANCHORFILE
|
||||
if [ -f $ANCHORFILE ]
|
||||
then
|
||||
# An explanation for the failure should have been given
|
||||
echo "Unable to stop $APP_LONG_NAME."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# We can not predict how long it will take for the wrapper to
|
||||
# actually stop as it depends on settings in wrapper.conf.
|
||||
# Loop until it does.
|
||||
savepid=$pid
|
||||
CNT=0
|
||||
TOTCNT=0
|
||||
while [ "X$pid" != "X" ]
|
||||
do
|
||||
# Show a waiting message every 5 seconds.
|
||||
if [ "$CNT" -lt "5" ]
|
||||
then
|
||||
CNT=`expr $CNT + 1`
|
||||
else
|
||||
echo "Waiting for $APP_LONG_NAME to exit..."
|
||||
CNT=0
|
||||
fi
|
||||
TOTCNT=`expr $TOTCNT + 1`
|
||||
|
||||
sleep 1
|
||||
|
||||
testpid
|
||||
done
|
||||
|
||||
pid=$savepid
|
||||
testpid
|
||||
if [ "X$pid" != "X" ]
|
||||
then
|
||||
echo "Failed to stop $APP_LONG_NAME."
|
||||
exit 1
|
||||
else
|
||||
echo "Stopped $APP_LONG_NAME."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
status() {
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
echo "$APP_LONG_NAME is not running."
|
||||
exit 1
|
||||
else
|
||||
echo "$APP_LONG_NAME is running ($pid)."
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
dump() {
|
||||
echo "Dumping $APP_LONG_NAME..."
|
||||
getpid
|
||||
if [ "X$pid" = "X" ]
|
||||
then
|
||||
echo "$APP_LONG_NAME was not running."
|
||||
|
||||
else
|
||||
kill -3 $pid
|
||||
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo "Failed to dump $APP_LONG_NAME."
|
||||
exit 1
|
||||
else
|
||||
echo "Dumped $APP_LONG_NAME."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
|
||||
'console')
|
||||
checkUser $1 touchlock
|
||||
console
|
||||
;;
|
||||
|
||||
'start')
|
||||
checkUser $1 touchlock
|
||||
start
|
||||
;;
|
||||
|
||||
'stop')
|
||||
checkUser $1
|
||||
stopit
|
||||
;;
|
||||
|
||||
'restart')
|
||||
checkUser $1 touchlock
|
||||
stopit
|
||||
start
|
||||
;;
|
||||
|
||||
'status')
|
||||
checkUser $1
|
||||
status
|
||||
;;
|
||||
|
||||
'dump')
|
||||
checkUser $1
|
||||
dump
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 { console | start | stop | restart | status | dump }"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,119 @@
|
|||
#********************************************************************
|
||||
# Wrapper Properties
|
||||
#********************************************************************
|
||||
|
||||
# Java Application
|
||||
wrapper.java.command=java
|
||||
|
||||
#wrapper.debug=TRUE
|
||||
wrapper.working.dir=../..
|
||||
|
||||
# Java Main class. This class must implement the WrapperListener interface
|
||||
# or guarantee that the WrapperManager class is initialized. Helper
|
||||
# classes are provided to do this for you. See the Integration section
|
||||
# of the documentation for details.
|
||||
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
|
||||
|
||||
# Java Classpath (include wrapper.jar) Add class path elements as
|
||||
# needed starting from 1
|
||||
wrapper.java.classpath.1=bin/core/boot/wrapper.jar
|
||||
wrapper.java.classpath.2=bin/run.jar
|
||||
wrapper.java.classpath.3=conf/
|
||||
wrapper.java.classpath.4=lib/
|
||||
wrapper.java.classpath.5=lib/optional/
|
||||
wrapper.java.classpath.6=./
|
||||
|
||||
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
|
||||
wrapper.java.library.path.1=bin/linux/
|
||||
|
||||
# Java Additional Parameters
|
||||
# note that n is the parameter number starting from 1.
|
||||
wrapper.java.additional.1=-Dorg.apache.activemq.UseDedicatedTaskRunner=true
|
||||
wrapper.java.additional.2=-Dderby.system.home=data
|
||||
wrapper.java.additional.3=-Dderby.storage.fileSyncTransactionLog=true
|
||||
wrapper.java.additional.4=-Dcom.sun.management.jmxremote
|
||||
wrapper.java.additional.5=-Dactivemq.home=./
|
||||
|
||||
# Uncomment to enable jmx
|
||||
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
|
||||
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
|
||||
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
|
||||
|
||||
# Uncomment to enable YourKit profiling
|
||||
#wrapper.java.additional.n=-Xrunyjpagent
|
||||
|
||||
# Uncomment to enable remote debugging
|
||||
#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
|
||||
#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
|
||||
|
||||
# Initial Java Heap Size (in MB)
|
||||
#wrapper.java.initmemory=3
|
||||
|
||||
# Maximum Java Heap Size (in MB)
|
||||
wrapper.java.maxmemory=512
|
||||
|
||||
# Application parameters. Add parameters as needed starting from 1
|
||||
wrapper.app.parameter.1=org.apache.activemq.console.Main
|
||||
|
||||
#********************************************************************
|
||||
# Wrapper Logging Properties
|
||||
#********************************************************************
|
||||
# Format of output for the console. (See docs for formats)
|
||||
wrapper.console.format=PM
|
||||
|
||||
# Log Level for console output. (See docs for log levels)
|
||||
wrapper.console.loglevel=INFO
|
||||
|
||||
# Log file to use for wrapper output logging.
|
||||
wrapper.logfile=bin/linux/wrapper.log
|
||||
|
||||
# Format of output for the log file. (See docs for formats)
|
||||
wrapper.logfile.format=LPTM
|
||||
|
||||
# Log Level for log file output. (See docs for log levels)
|
||||
wrapper.logfile.loglevel=INFO
|
||||
|
||||
# Maximum size that the log file will be allowed to grow to before
|
||||
# the log is rolled. Size is specified in bytes. The default value
|
||||
# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
|
||||
# 'm' (mb) suffix. For example: 10m = 10 megabytes.
|
||||
wrapper.logfile.maxsize=0
|
||||
|
||||
# Maximum number of rolled log files which will be allowed before old
|
||||
# files are deleted. The default value of 0 implies no limit.
|
||||
wrapper.logfile.maxfiles=0
|
||||
|
||||
# Log Level for sys/event log output. (See docs for log levels)
|
||||
wrapper.syslog.loglevel=NONE
|
||||
|
||||
#********************************************************************
|
||||
# Wrapper Windows Properties
|
||||
#********************************************************************
|
||||
# Title to use when running as a console
|
||||
wrapper.console.title=ActiveMQ
|
||||
|
||||
#********************************************************************
|
||||
# Wrapper Windows NT/2000/XP Service Properties
|
||||
#********************************************************************
|
||||
# WARNING - Do not modify any of these properties when an application
|
||||
# using this configuration file has been installed as a service.
|
||||
# Please uninstall the service before modifying this section. The
|
||||
# service can then be reinstalled.
|
||||
|
||||
# Name of the service
|
||||
wrapper.ntservice.name=ActiveMQ
|
||||
|
||||
# Display name of the service
|
||||
wrapper.ntservice.displayname=ActiveMQ
|
||||
|
||||
# Description of the service
|
||||
wrapper.ntservice.description=ActiveMQ Broker
|
||||
|
||||
# Service dependencies. Add dependencies as needed starting from 1
|
||||
wrapper.ntservice.dependency.1=
|
||||
|
||||
# Mode in which the service is installed. AUTO_START or DEMAND_START
|
||||
wrapper.ntservice.starttype=AUTO_START
|
||||
|
||||
# Allow the service to interact with the desktop.
|
||||
wrapper.ntservice.interactive=false
|
|
@ -0,0 +1,32 @@
|
|||
@echo off
|
||||
setlocal
|
||||
|
||||
rem Java Service Wrapper general NT service install script
|
||||
|
||||
|
||||
if "%OS%"=="Windows_NT" goto nt
|
||||
echo This script only works with NT-based versions of Windows.
|
||||
goto :eof
|
||||
|
||||
:nt
|
||||
rem
|
||||
rem Find the application home.
|
||||
rem
|
||||
rem %~dp0 is location of current script under NT
|
||||
set _REALPATH=%~dp0
|
||||
|
||||
set ACTIVEMQ_HOME=%~dp0..\..
|
||||
|
||||
:conf
|
||||
set _WRAPPER_CONF=wrapper.conf
|
||||
|
||||
set _ACTIVEMQ_HOME="set.ACTIVEMQ_HOME=%ACTIVEMQ_HOME%"
|
||||
|
||||
rem
|
||||
rem Install the Wrapper as an NT service.
|
||||
rem
|
||||
:startup
|
||||
"wrapper.exe" -i %_WRAPPER_CONF% %_ACTIVEMQ_HOME%
|
||||
if not errorlevel 1 goto :eof
|
||||
pause
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
@echo off
|
||||
setlocal
|
||||
|
||||
rem Java Service Wrapper general NT service uninstall script
|
||||
|
||||
if "%OS%"=="Windows_NT" goto nt
|
||||
echo This script only works with NT-based versions of Windows.
|
||||
goto :eof
|
||||
|
||||
:nt
|
||||
rem
|
||||
rem Find the application home.
|
||||
rem
|
||||
rem %~dp0 is location of current script under NT
|
||||
set _REALPATH=%~dp0
|
||||
|
||||
set ACTIVEMQ_HOME=%~dp0\..\..
|
||||
|
||||
:conf
|
||||
set _WRAPPER_CONF=wrapper.conf
|
||||
|
||||
|
||||
rem
|
||||
rem Uninstall the Wrapper as an NT service.
|
||||
rem
|
||||
:startup
|
||||
"%_APP_HOME%wrapper.exe" -r %_WRAPPER_CONF%
|
||||
if not errorlevel 1 goto :eof
|
||||
pause
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
@echo off
|
||||
rem
|
||||
rem Find the application home.
|
||||
rem
|
||||
if "%OS%"=="Windows_NT" goto nt
|
||||
|
||||
echo This is not NT, so please edit this script and set _APP_HOME manually
|
||||
set _APP_HOME=..
|
||||
|
||||
goto conf
|
||||
|
||||
:nt
|
||||
rem %~dp0 is name of current script under NT
|
||||
set _APP_HOME=%~dp0
|
||||
|
||||
rem Set ActiveMQ Home
|
||||
set ACTIVEMQ_HOME=%~dp0..\..
|
||||
|
||||
rem
|
||||
rem Find the wrapper.conf
|
||||
rem
|
||||
:conf
|
||||
set _WRAPPER_CONF=wrapper.conf
|
||||
|
||||
rem
|
||||
rem Run the application.
|
||||
rem At runtime, the current directory will be that of Wrapper.exe
|
||||
rem
|
||||
"%_APP_HOME%wrapper.exe" -c %_WRAPPER_CONF%
|
||||
if not errorlevel 1 goto end
|
||||
pause
|
||||
|
||||
:end
|
||||
set _APP_HOME=
|
||||
set _WRAPPER_CONF=
|
|
@ -0,0 +1,117 @@
|
|||
#********************************************************************
|
||||
# Wrapper Properties
|
||||
#********************************************************************
|
||||
|
||||
# Java Application
|
||||
wrapper.java.command=%JAVA_HOME%/bin/java
|
||||
|
||||
#wrapper.debug=TRUE
|
||||
wrapper.working.dir=../..
|
||||
|
||||
# Java Main class. This class must implement the WrapperListener interface
|
||||
# or guarantee that the WrapperManager class is initialized. Helper
|
||||
# classes are provided to do this for you. See the Integration section
|
||||
# of the documentation for details.
|
||||
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
|
||||
|
||||
# Java Classpath (include wrapper.jar) Add class path elements as
|
||||
# needed starting from 1
|
||||
wrapper.java.classpath.1=bin/core/boot/wrapper.jar
|
||||
wrapper.java.classpath.2=bin/run.jar
|
||||
wrapper.java.classpath.3=conf/
|
||||
wrapper.java.classpath.4=lib/
|
||||
wrapper.java.classpath.5=lib/optional/
|
||||
wrapper.java.classpath.6=./
|
||||
|
||||
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
|
||||
wrapper.java.library.path.1=bin/win32
|
||||
|
||||
# Java Additional Parameters
|
||||
# note that n is the parameter number starting from 1.
|
||||
wrapper.java.additional.1=-Dorg.apache.activemq.UseDedicatedTaskRunner=true
|
||||
wrapper.java.additional.2=-Dderby.system.home=data
|
||||
wrapper.java.additional.3=-Dderby.storage.fileSyncTransactionLog=true
|
||||
wrapper.java.additional.4=-Dcom.sun.management.jmxremote
|
||||
wrapper.java.additional.5=-Dactivemq.home=%ACTIVEMQ_HOME%
|
||||
|
||||
# Uncomment to enable jmx
|
||||
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616 #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false #wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
|
||||
|
||||
# Uncomment to enable YourKit profiling
|
||||
#wrapper.java.additional.n=-Xrunyjpagent
|
||||
|
||||
# Uncomment to enable remote debugging
|
||||
#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
|
||||
#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
|
||||
|
||||
# Initial Java Heap Size (in MB)
|
||||
#wrapper.java.initmemory=3
|
||||
|
||||
# Maximum Java Heap Size (in MB)
|
||||
wrapper.java.maxmemory=512
|
||||
|
||||
# Application parameters. Add parameters as needed starting from 1
|
||||
wrapper.app.parameter.1=org.apache.activemq.console.Main
|
||||
|
||||
#********************************************************************
|
||||
# Wrapper Logging Properties
|
||||
#********************************************************************
|
||||
# Format of output for the console. (See docs for formats)
|
||||
wrapper.console.format=PM
|
||||
|
||||
# Log Level for console output. (See docs for log levels)
|
||||
wrapper.console.loglevel=INFO
|
||||
|
||||
# Log file to use for wrapper output logging.
|
||||
wrapper.logfile=bin/win32/wrapper.log
|
||||
|
||||
# Format of output for the log file. (See docs for formats)
|
||||
wrapper.logfile.format=LPTM
|
||||
|
||||
# Log Level for log file output. (See docs for log levels)
|
||||
wrapper.logfile.loglevel=INFO
|
||||
|
||||
# Maximum size that the log file will be allowed to grow to before
|
||||
# the log is rolled. Size is specified in bytes. The default value
|
||||
# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
|
||||
# 'm' (mb) suffix. For example: 10m = 10 megabytes.
|
||||
wrapper.logfile.maxsize=0
|
||||
|
||||
# Maximum number of rolled log files which will be allowed before old
|
||||
# files are deleted. The default value of 0 implies no limit.
|
||||
wrapper.logfile.maxfiles=0
|
||||
|
||||
# Log Level for sys/event log output. (See docs for log levels)
|
||||
wrapper.syslog.loglevel=NONE
|
||||
|
||||
#********************************************************************
|
||||
# Wrapper Windows Properties
|
||||
#********************************************************************
|
||||
# Title to use when running as a console
|
||||
wrapper.console.title=ActiveMQ
|
||||
|
||||
#********************************************************************
|
||||
# Wrapper Windows NT/2000/XP Service Properties
|
||||
#********************************************************************
|
||||
# WARNING - Do not modify any of these properties when an application
|
||||
# using this configuration file has been installed as a service.
|
||||
# Please uninstall the service before modifying this section. The
|
||||
# service can then be reinstalled.
|
||||
|
||||
# Name of the service
|
||||
wrapper.ntservice.name=ActiveMQ
|
||||
|
||||
# Display name of the service
|
||||
wrapper.ntservice.displayname=ActiveMQ
|
||||
|
||||
# Description of the service
|
||||
wrapper.ntservice.description=ActiveMQ Broker
|
||||
|
||||
# Service dependencies. Add dependencies as needed starting from 1
|
||||
wrapper.ntservice.dependency.1=
|
||||
|
||||
# Mode in which the service is installed. AUTO_START or DEMAND_START
|
||||
wrapper.ntservice.starttype=AUTO_START
|
||||
|
||||
# Allow the service to interact with the desktop.
|
||||
wrapper.ntservice.interactive=false
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue