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

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