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

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