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

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