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