github.com/Cloud-Foundations/Dominator@v0.3.4/init.d/hypervisor.Debian-7 (about)

     1  #! /bin/bash --posix
     2  
     3  ### BEGIN INIT INFO
     4  # Provides:		hypervisor
     5  # Required-Start:	$local_fs $network $syslog
     6  # Required-Stop:	$local_fs $network $syslog
     7  # Default-Start:	2 3 4 5
     8  # Default-Stop:		0 1 6
     9  # Short-Description:	Hypervisor
    10  ### END INIT INFO
    11  
    12  # /etc/init.d/hypervisor: start and stop the Hypervisor
    13  
    14  . /lib/lsb/init-functions
    15  
    16  umask 022
    17  
    18  readonly default_log_dir='/var/log/hypervisor'
    19  readonly default_state_dir='/var/lib/hypervisor'
    20  
    21  CONFIGURATION_URL=
    22  DAEMON='/usr/local/sbin/hypervisor'
    23  IMAGE_SERVER_HOSTNAME=
    24  LOG_DIR="$default_log_dir"
    25  LOG_QUOTA=
    26  LOGBUF_LINES=
    27  LOOP_PIDFILE='/var/run/hypervisor.loop.pid'
    28  PIDFILE='/var/run/hypervisor.pid'
    29  STATE_DIR="$default_state_dir"
    30  VOLUME_DIRECTORIES=
    31  
    32  PROG_ARGS=
    33  
    34  [ -f /etc/default/hypervisor ] && . /etc/default/hypervisor
    35  
    36  test -x "$DAEMON" || exit 0
    37  
    38  export PATH="${PATH:+$PATH:}/usr/local/bin:/usr/local/sbin:/usr/sbin:/sbin"
    39  
    40  mkdir -m 0755 -p "$LOG_DIR" "$STATE_DIR"
    41  
    42  if [ -n "$CONFIGURATION_URL" ]; then
    43      PROG_ARGS="$PROG_ARGS -configurationUrl=$CONFIGURATION_URL"
    44  fi
    45  
    46  if [ -n "$IMAGE_SERVER_HOSTNAME" ]; then
    47      PROG_ARGS="$PROG_ARGS -imageServerHostname=$IMAGE_SERVER_HOSTNAME"
    48  fi
    49  
    50  if [ -n "$LOG_DIR" ] && [ "$LOG_DIR" != "$default_log_dir" ]; then
    51      PROG_ARGS="$PROG_ARGS -logDir=$LOG_DIR"
    52  fi
    53  
    54  if [ -n "$LOG_QUOTA" ]; then
    55      PROG_ARGS="$PROG_ARGS -logQuota=$LOG_QUOTA"
    56  fi
    57  
    58  if [ -n "$LOGBUF_LINES" ]; then
    59      PROG_ARGS="$PROG_ARGS -logbufLines=$LOGBUF_LINES"
    60  fi
    61  
    62  if [ -n "$STATE_DIR" ] && [ "$STATE_DIR" != "$default_state_dir" ]; then
    63      PROG_ARGS="$PROG_ARGS -stateDir=$STATE_DIR"
    64  fi
    65  
    66  if [ -n "$VOLUME_DIRECTORIES" ]; then
    67      PROG_ARGS="$PROG_ARGS -volumeDirectories=$VOLUME_DIRECTORIES"
    68  fi
    69  
    70  do_start ()
    71  {
    72      start-stop-daemon --start --quiet --pidfile "$PIDFILE" \
    73  		      --exec "$DAEMON" --make-pidfile -- \
    74  		      $PROG_ARGS
    75  }
    76  
    77  start_loop ()
    78  {
    79      echo "$BASHPID" > "$LOOP_PIDFILE"
    80      while true; do
    81  	sleep_interval=1
    82  	do_start || sleep_interval=10
    83  	rm -f "$PIDFILE"
    84  	sleep "$sleep_interval"
    85      done
    86  }
    87  
    88  case "$1" in
    89    start)
    90  	log_daemon_msg "Starting hypervisor daemon" "hypervisor" || true
    91  	(start_loop < /dev/null &> /dev/null &)
    92  	;;
    93    stop)
    94  	log_daemon_msg "Stopping hypervisor daemon" "hypervisor" || true
    95  	[ -s "$LOOP_PIDFILE" ] && kill -KILL $(cat "$LOOP_PIDFILE")
    96  	$DAEMON stop || true
    97  	[ -s "$PIDFILE" ]      && kill -TERM $(cat "$PIDFILE")
    98  	rm -f "$LOOP_PIDFILE" "$PIDFILE"
    99  	;;
   100  
   101    reload|force-reload)
   102  	$0 stop
   103  	$0 start
   104  	;;
   105  
   106    restart)
   107  	$0 stop
   108  	$0 start
   109  	;;
   110  
   111    *)
   112  	log_action_msg "Usage: /etc/init.d/hypervisor {start|stop|reload|force-reload|restart}" || true
   113  	exit 1
   114  esac
   115  
   116  exit 0