#!/bin/bash # # sailing Starts sailing services # # chkconfig: 2345 95 10 # description: Sailing contains all sailing services # Source function library. . /etc/init.d/functions RETVAL=0 JAVA_START_INSTANCES="server" GIT_REPOSITORY=/home/sailing/code start_tmux() { su - sailing -c "/home/sailing/bin/tmuxConsole.sh unattended" success } start_servers() { launch_httpd=false VARS=`/opt/amazon/bin/ec2-metadata -d | sed "s/user-data\: //g" | grep -v "^not available$"` for var in $VARS; do echo "$var" | grep -q "^SERVER_NAME=" if [ "$?" != "0" ]; then eval "export $var" fi echo "$var" | grep -q "^SERVER_PORT=" if [ "$?" != "0" ]; then eval "export $var" fi echo "$var" | grep -q "^EVENT_ID=" if [ "$?" != "0" ]; then eval "export $var" fi echo "$var" | grep -iq "^REPLICATE_ON_START=True" if [ "$?" != "0" ]; then launch_httpd=true fi done if [ "$launch_httpd" = "true" ]; then launch_httpd $SERVER_NAME $SERVER_PORT $EVENT_ID fi for conf in $JAVA_START_INSTANCES; do echo "Checking for amazon update..." su - sailing -c "cd /home/sailing/servers/$conf && $GIT_REPOSITORY/java/target/refreshInstance.sh auto-install" 2>/var/log/sailing.err >/var/log/sailing.out echo "Starting Java server $conf" su - sailing -c "cd /home/sailing/servers/$conf && ./start" 2>/var/log/sailing.err >/var/log/sailing.out RETVAL=$? [ $RETVAL -eq 0 ] && success || failure done } stop_servers() { for conf in $JAVA_START_INSTANCES; do echo "Stopping Java server $conf" su - sailing -c "cd /home/sailing/servers/$conf && ./stop" RETVAL=$? [ $RETVAL -eq 0 ] && success || failure done } # launch_httpd(server_name, port, event_id) launch_httpd() { echo "launch_httpd($1, $2, $2)" if [ -x /etc/init.d/httpd ]; then server_name="`echo $1 | tr [A-Z] [a-z]`" port="$2" event_id="$3" echo "Use Event $server_name.sapsailing.com \"$event_id\" 127.0.0.1 $port" >>/etc/httpd/conf.d/001-events.conf echo "Launching httpd to map ${server_name}.sapsailing.com to event with ID $event_id with server running on local port $port..." service httpd start else echo Can't launch httpd; start script doesn't seem to be installed at /etc/init.d/httpd fi } # See how we were called. case "$1" in start) start_servers ;; stop) stop_servers ;; status) status java RETVAL=$? ;; *) echo $"Usage: $0 {start|status|stop}" RETVAL=3 esac exit $RETVAL