mirror of
https://github.com/apache/cloudstack
synced 2026-08-02 05:26:35 +00:00
* 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>
151 lines
4.3 KiB
Bash
Executable File
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
|