From 9c880056d9e84eba74c83542db12101979475c6e Mon Sep 17 00:00:00 2001 From: Marek Goldmann <mgoldman@redhat.com> Date: Wed, 4 Apr 2012 15:30:43 +0200 Subject: [PATCH] Add systemd files, re-arrange directory with init scripts --- .../resources/bin/init.d/jboss-as-standalone.sh | 175 -------------------- build/src/main/resources/bin/init.d/jboss-as.conf | 22 --- .../bin/initscripts/systemd/jboss-as.conf | 4 + .../bin/initscripts/systemd/jboss-as.service | 17 ++ .../resources/bin/initscripts/sysv/jboss-as.conf | 22 +++ .../resources/bin/initscripts/sysv/jboss-as.sh | 176 +++++++++++++++++++++ build/src/main/resources/bin/standalone.sh | 4 + 7 files changed, 223 insertions(+), 197 deletions(-) delete mode 100755 build/src/main/resources/bin/init.d/jboss-as-standalone.sh delete mode 100644 build/src/main/resources/bin/init.d/jboss-as.conf create mode 100644 build/src/main/resources/bin/initscripts/systemd/jboss-as.conf create mode 100644 build/src/main/resources/bin/initscripts/systemd/jboss-as.service create mode 100644 build/src/main/resources/bin/initscripts/sysv/jboss-as.conf create mode 100755 build/src/main/resources/bin/initscripts/sysv/jboss-as.sh diff --git a/build/src/main/resources/bin/init.d/jboss-as-standalone.sh b/build/src/main/resources/bin/init.d/jboss-as-standalone.sh deleted file mode 100755 index 7b91e90..0000000 --- a/build/src/main/resources/bin/init.d/jboss-as-standalone.sh +++ /dev/null @@ -1,175 +0,0 @@ -#!/bin/sh -# -# JBoss standalone control script -# -# chkconfig: - 80 20 -# description: JBoss AS Standalone -# processname: standalone -# pidfile: /var/run/jboss-as/jboss-as-standalone.pid -# config: /etc/jboss-as/jboss-as.conf - -# Source function library. -. /etc/init.d/functions - -# Load Java configuration. -[ -r /etc/java/java.conf ] && . /etc/java/java.conf -export JAVA_HOME - -# Load JBoss AS init.d configuration. -if [ -z "$JBOSS_CONF" ]; then - JBOSS_CONF="/etc/jboss-as/jboss-as.conf" -fi - -[ -r "$JBOSS_CONF" ] && . "${JBOSS_CONF}" - -# Set defaults. - -if [ -z "$JBOSS_HOME" ]; then - JBOSS_HOME=/usr/share/jboss-as -fi -export JBOSS_HOME - -if [ -z "$JBOSS_PIDFILE" ]; then - JBOSS_PIDFILE=/var/run/jboss-as/jboss-as-standalone.pid -fi -export JBOSS_PIDFILE - -if [ -z "$JBOSS_CONSOLE_LOG" ]; then - JBOSS_CONSOLE_LOG=/var/log/jboss-as/console.log -fi - -if [ -z "$STARTUP_WAIT" ]; then - STARTUP_WAIT=30 -fi - -if [ -z "$SHUTDOWN_WAIT" ]; then - SHUTDOWN_WAIT=30 -fi - -if [ -z "$JBOSS_CONFIG" ]; then - JBOSS_CONFIG=standalone.xml -fi - -JBOSS_SCRIPT=$JBOSS_HOME/bin/standalone.sh - -prog='jboss-as' - -CMD_PREFIX='' - -if [ ! -z "$JBOSS_USER" ]; then - if [ -x /etc/rc.d/init.d/functions ]; then - CMD_PREFIX="daemon --user $JBOSS_USER" - else - CMD_PREFIX="su - $JBOSS_USER -c" - fi -fi - -start() { - echo -n "Starting $prog: " - if [ -f $JBOSS_PIDFILE ]; then - read ppid < $JBOSS_PIDFILE - if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then - echo -n "$prog is already running" - failure - echo - return 1 - else - rm -f $JBOSS_PIDFILE - fi - fi - mkdir -p $(dirname $JBOSS_CONSOLE_LOG) - cat /dev/null > $JBOSS_CONSOLE_LOG - - mkdir -p $(dirname $JBOSS_PIDFILE) - chown $JBOSS_USER $(dirname $JBOSS_PIDFILE) || true - #$CMD_PREFIX JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT 2>&1 > $JBOSS_CONSOLE_LOG & - #$CMD_PREFIX JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT & - - if [ ! -z "$JBOSS_USER" ]; then - if [ -x /etc/rc.d/init.d/functions ]; then - daemon --user $JBOSS_USER LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG 2>&1 > $JBOSS_CONSOLE_LOG & - else - su - $JBOSS_USER -c "LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG" 2>&1 > $JBOSS_CONSOLE_LOG & - fi - fi - - count=0 - launched=false - - until [ $count -gt $STARTUP_WAIT ] - do - grep 'JBoss AS.*started in' $JBOSS_CONSOLE_LOG > /dev/null - if [ $? -eq 0 ] ; then - launched=true - break - fi - sleep 1 - let count=$count+1; - done - - success - echo - return 0 -} - -stop() { - echo -n $"Stopping $prog: " - count=0; - - if [ -f $JBOSS_PIDFILE ]; then - read kpid < $JBOSS_PIDFILE - let kwait=$SHUTDOWN_WAIT - - # Try issuing SIGTERM - - kill -15 $kpid - until [ `ps --pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ] - do - sleep 1 - let count=$count+1; - done - - if [ $count -gt $kwait ]; then - kill -9 $kpid - fi - fi - rm -f $JBOSS_PIDFILE - success - echo -} - -status() { - if [ -f $JBOSS_PIDFILE ]; then - read ppid < $JBOSS_PIDFILE - if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then - echo "$prog is running (pid $ppid)" - return 0 - else - echo "$prog dead but pid file exists" - return 1 - fi - fi - echo "$prog is not running" - return 3 -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - $0 stop - $0 start - ;; - status) - status - ;; - *) - ## If no parameters are given, print which are avaiable. - echo "Usage: $0 {start|stop|status|restart|reload}" - exit 1 - ;; -esac diff --git a/build/src/main/resources/bin/init.d/jboss-as.conf b/build/src/main/resources/bin/init.d/jboss-as.conf deleted file mode 100644 index cbe4aa7..0000000 --- a/build/src/main/resources/bin/init.d/jboss-as.conf +++ /dev/null @@ -1,22 +0,0 @@ -# General configuration for the init.d scripts, -# not necessarily for JBoss AS itself. - -# The username who should own the process. -# -JBOSS_USER=jboss-as - -# The amount of time to wait for startup -# -# STARTUP_WAIT=30 - -# The amount of time to wait for shutdown -# -# SHUTDOWN_WAIT=30 - -# Location to keep the console log -# -# JBOSS_CONSOLE_LOG=/var/log/jboss-as/console.log - -# The configuration you want to run -# -JBOSS_CONFIG=standalone-web.xml diff --git a/build/src/main/resources/bin/initscripts/systemd/jboss-as.conf b/build/src/main/resources/bin/initscripts/systemd/jboss-as.conf new file mode 100644 index 0000000..82699ad --- /dev/null +++ b/build/src/main/resources/bin/initscripts/systemd/jboss-as.conf @@ -0,0 +1,4 @@ +# The configuration you want to run +# +JBOSS_CONFIG=standalone-web.xml + diff --git a/build/src/main/resources/bin/initscripts/systemd/jboss-as.service b/build/src/main/resources/bin/initscripts/systemd/jboss-as.service new file mode 100644 index 0000000..32c1c10 --- /dev/null +++ b/build/src/main/resources/bin/initscripts/systemd/jboss-as.service @@ -0,0 +1,17 @@ +[Unit] +Description=The JBoss Application Server +After=syslog.target network.target +Before=httpd.service + +[Service] +Environment=LAUNCH_JBOSS_IN_BACKGROUND=1 +EnvironmentFile=-/etc/jboss-as/jboss-as.conf +User=jboss-as +LimitNOFILE=102642 +PIDFile=/var/run/jboss-as/jboss-as.pid +ExecStart=/usr/share/jboss-as/bin/standalone.sh -c $JBOSS_CONFIG +StandardOutput=null + +[Install] +WantedBy=multi-user.target + diff --git a/build/src/main/resources/bin/initscripts/sysv/jboss-as.conf b/build/src/main/resources/bin/initscripts/sysv/jboss-as.conf new file mode 100644 index 0000000..d999aca --- /dev/null +++ b/build/src/main/resources/bin/initscripts/sysv/jboss-as.conf @@ -0,0 +1,22 @@ +# General configuration for the init.d scripts, +# not necessarily for JBoss AS itself. + +# The username who should own the process. +# +# JBOSS_USER=jboss-as + +# The amount of time to wait for startup +# +# STARTUP_WAIT=30 + +# The amount of time to wait for shutdown +# +# SHUTDOWN_WAIT=30 + +# Location to keep the console log +# +# JBOSS_CONSOLE_LOG=/var/log/jboss-as/console.log + +# The configuration you want to run +# +# JBOSS_CONFIG=standalone.xml diff --git a/build/src/main/resources/bin/initscripts/sysv/jboss-as.sh b/build/src/main/resources/bin/initscripts/sysv/jboss-as.sh new file mode 100755 index 0000000..7763855 --- /dev/null +++ b/build/src/main/resources/bin/initscripts/sysv/jboss-as.sh @@ -0,0 +1,176 @@ +#!/bin/sh +# +# JBoss AS control script +# +# chkconfig: - 80 20 +# description: JBoss AS Standalone +# pidfile: /var/run/jboss-as/jboss-as.pid +# config: /etc/jboss-as/jboss-as.conf + +# Source function library. +. /etc/init.d/functions + +# Load Java configuration. +[ -r /etc/java/java.conf ] && . /etc/java/java.conf +export JAVA_HOME + +# Load JBoss AS init.d configuration. +if [ -z "$JBOSS_CONF" ]; then + JBOSS_CONF="/etc/jboss-as/jboss-as.conf" +fi + +[ -r "$JBOSS_CONF" ] && . "${JBOSS_CONF}" + +# Set defaults. + +if [ -z "$JBOSS_HOME" ]; then + JBOSS_HOME=/usr/share/jboss-as +fi +export JBOSS_HOME + +if [ -z "$JBOSS_PIDFILE" ]; then + JBOSS_PIDFILE=/var/run/jboss-as/jboss-as.pid +fi +export JBOSS_PIDFILE + +if [ -z "$JBOSS_CONSOLE_LOG" ]; then + JBOSS_CONSOLE_LOG=/var/log/jboss-as/console.log +fi + +if [ -z "$STARTUP_WAIT" ]; then + STARTUP_WAIT=30 +fi + +if [ -z "$SHUTDOWN_WAIT" ]; then + SHUTDOWN_WAIT=30 +fi + +if [ -z "$JBOSS_CONFIG" ]; then + JBOSS_CONFIG=standalone.xml +fi + +if [ -z "$JBOSS_SCRIPT" ]; then + JBOSS_SCRIPT=$JBOSS_HOME/bin/standalone.sh +fi + +prog='jboss-as' + +CMD_PREFIX='' + +if [ ! -z "$JBOSS_USER" ]; then + if [ -x /etc/rc.d/init.d/functions ]; then + CMD_PREFIX="daemon --user $JBOSS_USER" + else + CMD_PREFIX="su - $JBOSS_USER -c" + fi +fi + +start() { + echo -n "Starting $prog: " + if [ -f $JBOSS_PIDFILE ]; then + read ppid < $JBOSS_PIDFILE + if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then + echo -n "$prog is already running" + failure + echo + return 1 + else + rm -f $JBOSS_PIDFILE + fi + fi + mkdir -p $(dirname $JBOSS_CONSOLE_LOG) + cat /dev/null > $JBOSS_CONSOLE_LOG + + mkdir -p $(dirname $JBOSS_PIDFILE) + chown $JBOSS_USER $(dirname $JBOSS_PIDFILE) || true + #$CMD_PREFIX JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT 2>&1 > $JBOSS_CONSOLE_LOG & + #$CMD_PREFIX JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT & + + if [ ! -z "$JBOSS_USER" ]; then + if [ -x /etc/rc.d/init.d/functions ]; then + daemon --user $JBOSS_USER LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG 2>&1 > $JBOSS_CONSOLE_LOG & + else + su - $JBOSS_USER -c "LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG" 2>&1 > $JBOSS_CONSOLE_LOG & + fi + fi + + count=0 + launched=false + + until [ $count -gt $STARTUP_WAIT ] + do + grep 'JBoss AS.*started in' $JBOSS_CONSOLE_LOG > /dev/null + if [ $? -eq 0 ] ; then + launched=true + break + fi + sleep 1 + let count=$count+1; + done + + success + echo + return 0 +} + +stop() { + echo -n $"Stopping $prog: " + count=0; + + if [ -f $JBOSS_PIDFILE ]; then + read kpid < $JBOSS_PIDFILE + let kwait=$SHUTDOWN_WAIT + + # Try issuing SIGTERM + + kill -15 $kpid + until [ `ps --pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ] + do + sleep 1 + let count=$count+1; + done + + if [ $count -gt $kwait ]; then + kill -9 $kpid + fi + fi + rm -f $JBOSS_PIDFILE + success + echo +} + +status() { + if [ -f $JBOSS_PIDFILE ]; then + read ppid < $JBOSS_PIDFILE + if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then + echo "$prog is running (pid $ppid)" + return 0 + else + echo "$prog dead but pid file exists" + return 1 + fi + fi + echo "$prog is not running" + return 3 +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + $0 stop + $0 start + ;; + status) + status + ;; + *) + ## If no parameters are given, print which are avaiable. + echo "Usage: $0 {start|stop|status|restart|reload}" + exit 1 + ;; +esac diff --git a/build/src/main/resources/bin/standalone.sh b/build/src/main/resources/bin/standalone.sh index 364dd9e..a3c32da 100755 --- a/build/src/main/resources/bin/standalone.sh +++ b/build/src/main/resources/bin/standalone.sh @@ -147,6 +147,10 @@ fi if [ "x$JBOSS_CONFIG_DIR" = "x" ]; then JBOSS_CONFIG_DIR="$JBOSS_BASE_DIR/configuration" fi +# determine the default pid file location dir, if not set +if [ "x$JBOSS_PIDFILE" = "x" ]; then + JBOSS_PIDFILE="/var/run/jboss-as/jboss-as.pid" +fi # For Cygwin, switch paths to Windows format before running java if $cygwin; then