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

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