github.com/Cloud-Foundations/Dominator@v0.3.4/init.d/imaginator.Debian-7 (about) 1 #! /bin/bash --posix 2 3 ### BEGIN INIT INFO 4 # Provides: imaginator 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 builder server 10 ### END INIT INFO 11 12 # /etc/init.d/imaginator: start and stop the Dominator image builder server 13 14 . /lib/lsb/init-functions 15 16 umask 022 17 18 readonly default_log_dir='/var/log/imaginator' 19 readonly default_state_dir='/var/lib/imaginator' 20 21 CONFIGURATION_URL= 22 DAEMON='/usr/local/sbin/imaginator' 23 IMAGE_SERVER_HOSTNAME= 24 LOG_DIR="$default_log_dir" 25 LOG_QUOTA= 26 LOGBUF_LINES= 27 LOOP_PIDFILE='/var/run/imaginator.loop.pid' 28 PIDFILE='/var/run/imaginator.pid' 29 STATE_DIR="$default_state_dir" 30 VARIABLES_FILE= 31 32 PROG_ARGS= 33 34 [ -f /etc/default/imaginator ] && . /etc/default/imaginator 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 "$VARIABLES_FILE" ]; then 67 PROG_ARGS="$PROG_ARGS -variablesFile=$VARIABLES_FILE" 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 imaginator daemon" "imaginator" || true 91 (start_loop < /dev/null &> /dev/null &) 92 ;; 93 stop) 94 log_daemon_msg "Stopping imaginator daemon" "imaginator" || true 95 [ -s "$LOOP_PIDFILE" ] && kill -KILL $(cat "$LOOP_PIDFILE") 96 [ -s "$PIDFILE" ] && kill -TERM $(cat "$PIDFILE") 97 rm -f "$LOOP_PIDFILE" "$PIDFILE" 98 ;; 99 100 reload|force-reload) 101 $0 stop 102 $0 start 103 ;; 104 105 restart) 106 $0 stop 107 $0 start 108 ;; 109 110 *) 111 log_action_msg "Usage: /etc/init.d/imaginator {start|stop|reload|force-reload|restart}" || true 112 exit 1 113 esac 114 115 exit 0