Skip to content

Instantly share code, notes, and snippets.

@valery1707
Last active December 29, 2015 07:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save valery1707/7636264 to your computer and use it in GitHub Desktop.
Save valery1707/7636264 to your computer and use it in GitHub Desktop.
JBoss Upstart script
description "JBoss 7.1.1.Final"
#start on (filesystem and networking) or runlevel [2345]
stop on runlevel [016]
env JBOSS_USER=jboss
env JBOSS_HOME=/srv/jboss/jboss-as-7.1.1.Final
env JBOSS_CONF_F=standalone
env JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman"
env JAVA_OPTS1="-Xms1g -Xmx4g -XX:PermSize=512m -XX:MaxPermSize=1024m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true"
env JAVA_OPTS2="-Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
env JAVA_OPTS3="-Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true"
env JAVA_OPTS4="-Djboss.server.default.config=standalone.xml"
env JAVA_OPTS5="-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCodeCacheFlushing"
env JBOSS_PIDFILE=/var/run/jboss.pid
env JBOSS_CONSOLE_LOG=/srv/jboss/jboss-as-7.1.1.Final/standalone/log/console.log
env JBOSS_CONFIG=standalone.xml
env JBOSS_SCRIPT=standalone.sh
#console owner
kill timeout 300
pre-start script
mkdir -p $(dirname $JBOSS_CONSOLE_LOG)
echo 'Prepare logs'
rm -f $JBOSS_CONSOLE_LOG
touch $JBOSS_CONSOLE_LOG
chown $JBOSS_USER:$JBOSS_USER $(dirname $JBOSS_CONSOLE_LOG) || true
chown $JBOSS_USER:$JBOSS_USER $JBOSS_CONSOLE_LOG
echo 'Clear failed deployments mark'
rm -f ${JBOSS_HOME}/standalone/deployments/*.failed || true
echo 'Clear vfs'
rm -f -r ${JBOSS_HOME}/standalone/tmp/vfs/* || true
end script
script
echo 'Prepare run JBoss'
# Combine all java_opts into one
env JAVA_OPTS="$JAVA_OPTS1 $JAVA_OPTS2 $JAVA_OPTS3 $JAVA_OPTS4 $JAVA_OPTS5"
# Extend paths for other params
env JBOSS_CONF=${JBOSS_HOME}/bin/${JBOSS_CONF_F}.conf
# Run JBoss
echo 'Run JBoss'
exec su -c "JBOSS_PIDFILE=$JBOSS_PIDFILE ${JBOSS_HOME}/bin/$JBOSS_SCRIPT -c $JBOSS_CONFIG 2>&1 > $JBOSS_CONSOLE_LOG" ${JBOSS_USER}
end script
post-start script
# Wait for tag-lines in log file
# JBoss AS 7.1.1.Final "Brontes" started in 32497ms
# JBoss AS 7.1.1.Final "Brontes" started (with errors) in 32497ms
while ! grep 'JBoss AS .* started.* in\s[0-9]*ms' "$JBOSS_CONSOLE_LOG" -q ; do sleep 1 ; done
end script
pre-stop script
exec su -c "${JBOSS_HOME}/bin/jboss-cli.sh --connect command=:shutdown" ${JBOSS_USER}
sleep 5s
end script
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment