cloudstack-mirror/packaging/debian/init/cloud-management
Rohit Yadav cb3fed0e4e systemd: fix services to allow TLS configurations via java.security.ciphers (#3163)
* systemd: fix services to allow TLS configurations via java.security.ciphers

This fixes the management server and systemd services to allow the
java.security.ciphers file to configure disabled TLS protocols and
algorithms. This also cleans up systemd service files for agent and
usage server.

This fixes #3140

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

* configure: fix travis failure due pycodestyle error

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2019-02-04 19:51:30 -02:00

151 lines
4.3 KiB
Bash
Executable File

#!/bin/sh
#
# /etc/init.d/cloudstack-management -- startup script for CloudStack
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
### BEGIN INIT INFO
# Provides: cloudstack-management
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Should-Start: $named
# Should-Stop: $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start CloudStack.
# Description: Start the CloudStack Management Server.
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=cloudstack-management
DESC="CloudStack Management Server"
DAEMON=/usr/bin/jsvc
DEFAULT=/etc/default/$NAME
USER="cloud"
GROUP="cloud"
CLOUDSTACK_PID="/var/run/$NAME.pid"
# 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
# and fail when this init script is run manually.
HOME=$(echo ~cloud)
if [ `id -u` -ne 0 ]; then
echo "You need root privileges to run this script"
exit 1
fi
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG
fi
. /lib/lsb/init-functions
. /etc/default/rcS
# 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"
# 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"
fi
done
export JAVA_HOME
# overwrite settings from default file
if [ -f "$DEFAULT" ]; then
. "$DEFAULT"
fi
JARS=$(ls /usr/share/cloudstack-management/lib/*.jar | tr '\n' ':' | sed s'/.$//')
CLASSPATH="$JARS:$CLASSPATH:/usr/share/java/commons-daemon.jar"
[ -f "$DAEMON" ] || exit 0
# 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/"
fi
export JSSE_HOME
case "$1" in
start)
if [ -z "$JAVA_HOME" ]; then
log_failure_msg "no JDK found - please set JAVA_HOME"
exit 1
fi
log_daemon_msg "Starting $DESC" "$NAME"
if start-stop-daemon --test --start --quiet --pidfile "$CLOUDSTACK_PID" \
--user $USER --startas "$JAVA_HOME/bin/java"; then
# fix storage issues on nfs mounts
umask 000
start-stop-daemon --start --quiet --pidfile "$CLOUDSTACK_PID" \
--user $USER --group $GROUP --exec $DAEMON -- -user "$USER" -server \
-home "$JAVA_HOME" -cp "$CLASSPATH" \
-outfile SYSLOG -errfile $LOGDIR/$NAME.err \
-pidfile "$CLOUDSTACK_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
log_end_msg $?
else
log_progress_msg "(already running)"
log_end_msg 0
fi
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile "$CLOUDSTACK_PID"
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
log_end_msg 0
;;
status)
if start-stop-daemon --test --start --pidfile "$CLOUDSTACK_PID" \
--user $USER --startas "$JAVA_HOME/bin/java" \
>/dev/null; then
if [ -f "$CLOUDSTACK_PID" ]; then
log_success_msg "$DESC is not running, but pid file exists."
exit 1
else
log_success_msg "$DESC is not running."
exit 3
fi
else
log_success_msg "$DESC is running with pid `cat $CLOUDSTACK_PID`"
fi
;;
restart|force-reload)
if start-stop-daemon --test --stop --pidfile "$CLOUDSTACK_PID" \
--user $USER --startas "$JAVA_HOME/bin/java" \
>/dev/null; then
$0 stop
sleep 1
fi
$0 start
;;
*)
log_success_msg "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
exit 1
;;
esac
exit 0