You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2017/08/07 11:24:42 UTC
[cloudstack] 02/05: Modify cloudtack-amanement init with uber jar
startup
This is an automated email from the ASF dual-hosted git repository.
bhaisaab pushed a commit to branch CLOUDSTACK-10012
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit f7cc6300b8add1227f1dea76e07d19337c66fa31
Author: Marc-Aurèle Brothier <m...@brothier.org>
AuthorDate: Mon Jul 31 08:11:37 2017 +0200
Modify cloudtack-amanement init with uber jar startup
---
packaging/debian/init/cloud-management | 111 +++++++++++----------------------
1 file changed, 36 insertions(+), 75 deletions(-)
diff --git a/packaging/debian/init/cloud-management b/packaging/debian/init/cloud-management
index 05c38be..a1d64a8 100755
--- a/packaging/debian/init/cloud-management
+++ b/packaging/debian/init/cloud-management
@@ -34,9 +34,16 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=cloudstack-management
DESC="CloudStack-specific Tomcat servlet engine"
DAEMON=/usr/bin/jsvc
-CATALINA_HOME=/usr/share/cloudstack-management
-DEFAULT=/etc/cloudstack/management/tomcat6.conf
+MANAGEMENT_HOME=/usr/share/$NAME
+MANAGEMENT_CONFIG="/etc/cloudstack/management"
JVM_TMP=/tmp/$NAME-temp
+USER="cloud"
+GROUP="cloud"
+UBER_JAR="$MANAGEMENT_HOME/cloud-management-server.jar"
+BOOTSTRAP_CLASS="org.apache.cloudstack.ServerDaemon"
+MANAGEMENT_PID="/var/run/$NAME.pid"
+JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$MANAGEMENT_HOME/bcprov-jdk15on-1.55.jar:$MANAGEMENT_CONFIG:/usr/share/$NAME/setup:$MANAGEMENT_HOME:$UBER_JAR"
+
# We have to explicitly set the HOME variable to the homedir from the user "cloud"
# This is because various scripts run by the management server read the HOME variable
@@ -60,9 +67,6 @@ fi
# The following variables can be overwritten in $DEFAULT
-# Run Tomcat 6 as this user ID
-TOMCAT6_USER=tomcat6
-
# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)
JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /usr/lib/jvm/java-8-oracle /usr/lib/jvm/java-8-openjdk"
@@ -70,7 +74,7 @@ JDK_DIRS="/usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-i386 /us
# Look for the right JVM to use
for jdir in $JDK_DIRS; do
if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
- JAVA_HOME="$jdir"
+ JAVA_HOME="$jdir"
fi
done
export JAVA_HOME
@@ -103,30 +107,17 @@ if [ ! -f "$CATALINA_HOME/bin/bootstrap.jar" ]; then
fi
[ -f "$DAEMON" ] || exit 0
+[ -r "$UBER_JAR" ] || exit 0
+[ -d "$MANAGEMENT_CONFIG" ] || exit 0
-POLICY_CACHE="$CATALINA_BASE/work/catalina.policy"
-
-JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$JVM_TMP"
-
-# Set the JSP compiler if set in the tomcat6.default file
-if [ -n "$JSP_COMPILER" ]; then
- JAVA_OPTS="$JAVA_OPTS -Dbuild.compiler=$JSP_COMPILER"
-fi
-
-if [ "$TOMCAT6_SECURITY" = "yes" ]; then
- JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=$POLICY_CACHE"
-fi
+JAVA_OPTS="$JAVA_OPTS -Djava.io.tmpdir=$JVM_TMP"
-# Set juli LogManager if logging.properties is provided
-if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
- JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
+# Load extra arguments from java-opts.conf if any
+if [ -r "$MANAGEMENT_CONFIG/java-opts.conf" ]; then
+ JAVA_EXTRA_OPTS=$(cat $MANAGEMENT_CONFIG/java-opts.conf)
+ JAVA_OPTS="$JAVA_OPTS $JAVA_EXTRA_OPTS"
fi
-# Define other required variables
-CATALINA_PID="/var/run/$NAME.pid"
-BOOTSTRAP_CLASS=org.apache.catalina.startup.Bootstrap
-JSVC_CLASSPATH="/usr/share/java/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar:/etc/cloudstack/management:/usr/share/cloudstack-management/setup"
-
# Look for Java Secure Sockets Extension (JSSE) JARs
if [ -z "${JSSE_HOME}" -a -r "${JAVA_HOME}/jre/lib/jsse.jar" ]; then
JSSE_HOME="${JAVA_HOME}/jre/"
@@ -140,25 +131,9 @@ case "$1" in
exit 1
fi
- if [ ! -d "$CATALINA_BASE/conf" ]; then
- log_failure_msg "invalid CATALINA_BASE: $CATALINA_BASE"
- exit 1
- fi
-
log_daemon_msg "Starting $DESC" "$NAME"
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
-
- # Regenerate POLICY_CACHE file
- umask 022
- echo "// AUTO-GENERATED FILE from /etc/tomcat6/policy.d/" \
- > "$POLICY_CACHE"
- echo "" >> "$POLICY_CACHE"
- if ls $CATALINA_BASE/conf/policy.d/*.policy > /dev/null 2>&1 ; then
- cat $CATALINA_BASE/conf/policy.d/*.policy \
- >> "$POLICY_CACHE"
- fi
+ if start-stop-daemon --test --start --quiet --pidfile "$MANAGEMENT_PID" \
+ --user $USER --startas "$JAVA_HOME/bin/java"; then
# Remove / recreate JVM_TMP directory
rm -rf "$JVM_TMP"
@@ -166,48 +141,34 @@ case "$1" in
log_failure_msg "could not create JVM temporary directory"
exit 1
}
- chown $TOMCAT6_USER "$JVM_TMP"
- cd "$JVM_TMP"
-
# fix storage issues on nfs mounts
umask 000
- $DAEMON -user "$TOMCAT6_USER" -cp "$JSVC_CLASSPATH" \
- -outfile SYSLOG -errfile SYSLOG \
- -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
-
- sleep 5
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- log_end_msg 1
- else
- log_end_msg 0
- fi
+ start-stop-daemon --start --quiet --pidfile "$MANAGEMENT_PID" \
+ --user $USER --group $GROUP --exec $DAEMON -- -user "$USER" -server \
+ -home "$JAVA_HOME" -cp "$JSVC_CLASSPATH" \
+ -outfile SYSLOG -errfile SYSLOG \
+ -pidfile "$MANAGEMENT_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
+ log_end_msg $?
else
- log_progress_msg "(already running)"
+ log_progress_msg "(already running)"
log_end_msg 0
fi
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user "$TOMCAT6_USER" --startas "$JAVA_HOME/bin/java" \
- >/dev/null; then
- log_progress_msg "(not running)"
- else
- $DAEMON -cp "$JSVC_CLASSPATH" -pidfile "$CATALINA_PID" \
- -stop "$BOOTSTRAP_CLASS"
- fi
- rm -rf "$JVM_TMP"
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile "$MANAGEMENT_PID"
+ RETVAL="$?"
+ [ "$RETVAL" = 2 ] && return 2
+ [ "$RETVAL" = 0 ] && rm -rf "$JVM_TMP"
log_end_msg 0
;;
status)
- if start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+ if start-stop-daemon --test --start --pidfile "$$MANAGEMENT_PID" \
+ --user $USER --startas "$JAVA_HOME/bin/java" \
>/dev/null; then
- if [ -f "$CATALINA_PID" ]; then
+ if [ -f "$$MANAGEMENT_PID" ]; then
log_success_msg "$DESC is not running, but pid file exists."
exit 1
else
@@ -215,12 +176,12 @@ case "$1" in
exit 3
fi
else
- log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
+ log_success_msg "$DESC is running with pid `cat $$MANAGEMENT_PID`"
fi
;;
restart|force-reload)
- if start-stop-daemon --test --stop --pidfile "$CATALINA_PID" \
- --user $TOMCAT6_USER --startas "$JAVA_HOME/bin/java" \
+ if start-stop-daemon --test --stop --pidfile "$$MANAGEMENT_PID" \
+ --user $USER --startas "$JAVA_HOME/bin/java" \
>/dev/null; then
$0 stop
sleep 1
--
To stop receiving notification emails like this one, please contact
"commits@cloudstack.apache.org" <co...@cloudstack.apache.org>.