blob: 274499ecfa172135a50630323d5ba62545fba081 [file] [log] [blame]
#!/bin/bash
#
# Description: Control script for OSEE Application Server
###################################################################
echo "Start of OSEE control script"
if [ -z "$OSEE_APP_SERVER_PORT" ]; then
OSEE_APP_SERVER_PORT=8089
fi
if [ -z "$OSGI_TELNET_PORT" ]; then
OSGI_TELNET_PORT=$(($OSEE_APP_SERVER_PORT+1))
fi
if [ -z "$INSTALL_PATH" ]; then
INSTALL_PATH=$(dirname "$BASH_SOURCE")
fi
if [ -z "$OSEE_APP_SERVER_DATA" ]; then
OSEE_APP_SERVER_DATA=$INSTALL_PATH/../osee_server_data
fi
if [ -z "$OSEE_SERVER_MAX_MEMORY" ]; then
OSEE_SERVER_MAX_MEMORY=3G
fi
if [ -z "$LOG_BACK" ]; then
LOG_BACK="logback/logback-config.xml"
fi
if [ -z "$USE_LOAD_BALANCER" ]; then
USE_LOAD_BALANCER=false
fi
if [ -z "$OSEE_AUTHENTICATION_PROTOCOL" ]; then
OSEE_AUTHENTICATION_PROTOCOL="trustAll"
fi
if [ -z "$OSEE_BALANCER_GROUP" ]; then
OSEE_BALANCER_GROUP="osee"
fi
####################################################################
EQUINOX_LAUNCHER=`ls plugins/org.eclipse.equinox.launcher_*.jar`
# Source function library.
[ -z "$JAVA_HOME" -a -x /etc/profile.d/java.sh ] && . /etc/profile.d/java.sh
if [ -d "$JAVA_HOME" ]; then
JAVA_EXEC=$JAVA_HOME/bin/java
else
JAVA_EXEC=`which java`
fi
OS_NAME=`uname -s`
OS_MACHINE=`uname -n`
SERVER_ID="$OS_MACHINE"_"$OSEE_APP_SERVER_PORT"
CONFIGURATION_AREA="$INSTALL_PATH/$SERVER_ID.config"
mkdir -p "$CONFIGURATION_AREA"
LOG="$INSTALL_PATH/logs/osee_app_server_$SERVER_ID.log"
LOCK="$INSTALL_PATH/locks/osee_app_server_$SERVER_ID.lock"
OSEE_APP_SERVER_EXTRA_VMARGS="-Djavax.net.ssl.trustStore=$INSTALL_PATH/etc/keystore/lba.jks -Djavax.net.ssl.trustStorePassword=secret -Dcm.config.uri=$OSEE_SERVER_CONFIG_URI -Djava.security.egd=file:///dev/urandom -Dosee.authentication.protocol=$OSEE_AUTHENTICATION_PROTOCOL -Dosee.application.server.data=$OSEE_APP_SERVER_DATA -Dosee.check.tag.queue.on.startup=false -Dosee.proxy.bypass.enabled=true"
######################################################################
RETVAL=0
BOOTUP=color
RES_COL=3
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_NORMAL="echo -en \\033[0;39m"
echo_success() {
[ "$BOOTUP" = "color" ] && $MOVE_TO_COL
echo -n "["
[ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS
echo -n $" OK "
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
echo -ne "\r"
return 0
}
echo_failure() {
[ "$BOOTUP" = "color" ] && $MOVE_TO_COL
echo -n "["
[ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
echo -n $"FAILED"
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
echo -ne "\r"
return 1
}
success() {
#if [ -z "${IN_INITLOG:-}" ]; then
# initlog $INITLOG_ARGS -n $0 -s "$3" -e 1
#fi
[ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_success
return 0
}
# Log that something failed
failure() {
rc=$?
#if [ -z "${IN_INITLOG:-}" ]; then
# initlog $INITLOG_ARGS -n $0 -s "$3" -e 2
#fi
[ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_failure
[ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes
[ -w /var/gdm/.gdmfifo ] && echo "BOOTUP_ERRORS" > /var/gdm/.gdmfifo &
return $rc
}
print_osee_app_server_home(){
echo "OSEE App Server Home: [$INSTALL_PATH]"
echo ""
}
test_app_server_alive() {
(expect -c "
log_user 0
set timeout 10
spawn telnet $OS_MACHINE $OSGI_TELNET_PORT
expect_after eof {exit 1}
expect \"osgi> \" {send \"disconnect\r\"}
expect \"default=y) \" {send \"y\r\"}
exit 0
")
isAlive=$?
if [ $isAlive -eq 0 ]; then
isAlive="Alive"
fi
}
pid_of_osee_app_server() {
pid=`netstat -tulpn | grep $OSEE_APP_SERVER_PORT | awk '{print $1}'`
}
start() {
NMAP=$(nmap -p ${OSEE_APP_SERVER_PORT} localhost)
if [[ $NMAP != *"closed"* ]]; then
echo "OSEE port ${OSEE_APP_SERVER_PORT} already in use";
exit 1
fi
[ -e "$LOG" ] && cnt=`wc -l "$LOG" | awk '{ print $3 }'` || cnt=1
echo $"Starting OSEE App Server: "
mkdir -p "$INSTALL_PATH"/logs
mkdir -p "$INSTALL_PATH"/locks
pid_of_osee_app_server
if [ -n "$pid" ]; then
echo Server already started with pid: $pid
exit 0
fi
echo $OSEE_SERVER_CONFIG_URI
EXECUTION_CMD="$JAVA_EXEC -Xms40m -Xmx$OSEE_SERVER_MAX_MEMORY -Dorg.osgi.service.http.port=$OSEE_APP_SERVER_PORT -Dlogback.configurationFile=$LOG_BACK $OSEE_APP_SERVER_EXTRA_VMARGS -jar $EQUINOX_LAUNCHER -console $OSGI_TELNET_PORT -consoleLog $OSEE_APP_ARGS -clean>> $LOG 2>&1 &"
EXECUTION_CMD=${EXECUTION_CMD//Program Files/\'Program Files\'}
echo "EXEC: $EXECUTION_CMD"> "$LOG"
`eval` $EXECUTION_CMD
pid_of_osee_app_server
echo pid: $pid
RETVAL=$?
if [ -z "$pid" ]; then
echo Server not started for port $OSEE_APP_SERVER_PORT
echo "[ FAILED ]"
elif [ $RETVAL == 0 ]; then
echo Server started with port $OSEE_APP_SERVER_PORT and pid $pid
echo "[ OK ]"
else
echo Server not started with port $OSEE_APP_SERVER_PORT
echo "[ FAILED ]"
fi
[ $RETVAL = 0 ] && `echo "" > "$LOCK"`
}
stop() {
echo -n $"Stopping OSEE App Server: "
pid_of_osee_app_server
echo pid: $pid
# process still alive, try kill
if [ -n "$pid" ]; then
kill $(netstat -plten | grep $OSEE_APP_SERVER_PORT | awk -F'/' '{print $1}' | awk '{print $9}')
RETVAL=$?
if [ $RETVAL == 0 ]; then
# kill successfully sent to process
sleep 5
pid_of_osee_app_server
if [ -n "$pid" ]; then
# server still alive, kill -9
kill -9 $recheck
fi
fi
fi
rm -rf "$CONFIGURATION_AREA"
rm -f "$LOCK"
RETVAL=$?
if [ $RETVAL == 0 ]; then
echo "[ OK ]"
else
echo "[FAILED]"
fi
}
status() {
pid_of_osee_app_server
if [ -n "$pid" ]; then
test_app_server_alive
if [ "$isAlive" == "Alive" ]; then
echo "OSEE App Server (pid $pid) is running..."
else
echo "OSGI without OSEE (pid $pid) is running..."
fi
fi
if [ -z "$pid" ]; then
echo No pid found for port $OSEE_APP_SERVER_PORT
else
echo Server is running for port $OSEE_APP_SERVER_PORT
return 0
fi
echo "OSEE App Server is stopped"
return 3
}
setLoadBalancerPortEnablement () {
if [ "$USE_LOAD_BALANCER" = true ]; then
source $INSTALL_PATH/balancer.sh
if [ $ACTION == "disable" ]; then
sleep 5
fi
fi
}
# See how we were called.
OSEE_APP_SERVER_CMD=$1
case "$OSEE_APP_SERVER_CMD" in
start)
print_osee_app_server_home
start
if [ $RETVAL == 0 ]; then
ACTION="enable"
setLoadBalancerPortEnablement
else
echo "OSEE Application Server do not start"
fi
;;
stop)
print_osee_app_server_home
ACTION="disable"
setLoadBalancerPortEnablement
stop
;;
status)
print_osee_app_server_home
status
;;
restart)
stop
start
;;
*)
echo $"Usage: {start|stop|restart|status}"
exit 1
esac
exit $RETVAL