121 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# -------------------------------------------------------------------------- #
 | 
						|
# Copyright 2002-2023, OpenNebula Project, OpenNebula Systems                #
 | 
						|
#                                                                            #
 | 
						|
# Licensed 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.                                             #
 | 
						|
#--------------------------------------------------------------------------- #
 | 
						|
 | 
						|
if [ -z "$ONE_LOCATION" ]; then
 | 
						|
    ONEGATE_PROXY_PID=/var/run/one/onegate-proxy.pid
 | 
						|
    ONEGATE_PROXY_SERVER=/usr/lib/one/onegate-proxy/onegate-proxy.rb
 | 
						|
    ONEGATE_PROXY_LOCK_FILE=/var/lock/one/.onegate-proxy.lock
 | 
						|
    ONEGATE_PROXY_LOG=/var/log/one/onegate-proxy.log
 | 
						|
    ONEGATE_PROXY_LOG_ERROR=/var/log/one/onegate-proxy.error
 | 
						|
else
 | 
						|
    ONEGATE_PROXY_PID=$ONE_LOCATION/var/onegate-proxy.pid
 | 
						|
    ONEGATE_PROXY_SERVER=$ONE_LOCATION/lib/onegate-proxy/onegate-proxy.rb
 | 
						|
    ONEGATE_PROXY_LOCK_FILE=$ONE_LOCATION/var/.onegate-proxy.lock
 | 
						|
    ONEGATE_PROXY_LOG=$ONE_LOCATION/var/onegate-proxy.log
 | 
						|
    ONEGATE_PROXY_LOG_ERROR=$ONE_LOCATION/var/onegate-proxy.error
 | 
						|
fi
 | 
						|
 | 
						|
setup()
 | 
						|
{
 | 
						|
  if [ -f $ONEGATE_PROXY_LOCK_FILE ]; then
 | 
						|
    if [ -f  $ONEGATE_PROXY_PID ]; then
 | 
						|
      ONEGATEPID=`cat $ONEGATE_PROXY_PID`
 | 
						|
      ps $ONEGATEPID &> /dev/null
 | 
						|
      if [ $? -eq 0 ]; then
 | 
						|
        echo -n "OneGate Server is still running (PID:$ONEGATEPID). Please "
 | 
						|
        echo "try 'onegate-proxy stop' first."
 | 
						|
        exit 1
 | 
						|
      fi
 | 
						|
    fi
 | 
						|
    echo "Stale .lock detected. Erasing it."
 | 
						|
    rm $ONEGATE_PROXY_LOCK_FILE
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
start()
 | 
						|
{
 | 
						|
  if [ ! -f "$ONEGATE_PROXY_SERVER" ]; then
 | 
						|
    echo "Cannot find $ONEGATE_PROXY_SERVER."
 | 
						|
    exit 1
 | 
						|
  fi
 | 
						|
 | 
						|
  # Start the onegate daemon
 | 
						|
  touch $ONEGATE_PROXY_LOCK_FILE
 | 
						|
  ruby $ONEGATE_PROXY_SERVER > $ONEGATE_PROXY_LOG 2>$ONEGATE_PROXY_LOG_ERROR &
 | 
						|
  LASTPID=$!
 | 
						|
 | 
						|
  if [ $? -ne 0 ]; then
 | 
						|
    echo "Error executing onegate-proxy."
 | 
						|
    echo "Check $ONEGATE_PROXY_LOG_ERROR and $ONEGATE_PROXY_LOG for more information"
 | 
						|
    exit 1
 | 
						|
  else
 | 
						|
    echo $LASTPID > $ONEGATE_PROXY_PID
 | 
						|
  fi
 | 
						|
 | 
						|
  sleep 1
 | 
						|
  ps $LASTPID &> /dev/null
 | 
						|
 | 
						|
  if [ $? -ne 0 ]; then
 | 
						|
    echo "Error executing onegate-proxy."
 | 
						|
    echo "Check $ONEGATE_PROXY_LOG_ERROR and $ONEGATE_PROXY_LOG for more information"
 | 
						|
    exit 1
 | 
						|
  fi
 | 
						|
 | 
						|
  echo "onegate-proxy started"
 | 
						|
}
 | 
						|
 | 
						|
#
 | 
						|
# Function that stops the daemon/service
 | 
						|
#
 | 
						|
stop()
 | 
						|
{
 | 
						|
  if [ ! -f $ONEGATE_PROXY_PID ]; then
 | 
						|
    echo "Couldn't find onegate-proxy process pid."
 | 
						|
    exit 1
 | 
						|
  fi
 | 
						|
 | 
						|
  # Kill the onegate daemon
 | 
						|
  kill -INT `cat $ONEGATE_PROXY_PID` &> /dev/null
 | 
						|
 | 
						|
  # Remove pid files
 | 
						|
  rm -f $ONEGATE_PROXY_LOCK_FILE &> /dev/null
 | 
						|
  rm -f $ONEGATE_PROXY_PID &> /dev/null
 | 
						|
 | 
						|
  echo "onegate-proxy stopped"
 | 
						|
}
 | 
						|
 | 
						|
case "$1" in
 | 
						|
  start)
 | 
						|
    setup
 | 
						|
    start
 | 
						|
    ;;
 | 
						|
  stop)
 | 
						|
    stop
 | 
						|
    ;;
 | 
						|
  restart)
 | 
						|
    stop
 | 
						|
    setup
 | 
						|
    start
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
    echo "Usage: onegate-proxy {start|stop|restart}" >&2
 | 
						|
    exit 3
 | 
						|
    ;;
 | 
						|
esac
 |