github.com/mikespook/gleam@v0.0.0-20170807230223-29a9392b522c/utils/init.d_gleam (about) 1 #!/bin/bash 2 ### BEGIN INIT INFO 3 # Provides: gleam 4 # Required-Start: $network $remote_fs $local_fs 5 # Required-Stop: $network $remote_fs $local_fs 6 # Default-Start: 2 3 4 5 7 # Default-Stop: 0 1 6 8 # Short-Description: Stop/start gleam 9 ### END INIT INFO 10 11 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 12 NAME=gleam 13 DESC=gleam 14 DAEMON=/usr/local/bin/gleam 15 PID=/run/$NAME.pid 16 LOG=/var/log/$NAME.log 17 18 test -x $DAEMON 19 if [ $? -eq 1 ]; then 20 echo "Missing binary file: $DAEMON" 21 exit 1 22 fi 23 24 set -e 25 26 . /lib/lsb/init-functions 27 28 start_gleam() { 29 if [ -f $PID ]; then 30 echo -n "Already started " && return 1 31 fi 32 $DAEMON -scripts=/usr/local/share/gleam &>> $LOG & 33 echo $! > $PID 34 return 0 35 } 36 37 stop_gleam() { 38 [ ! -f $PID ] && echo -n "Not running " && return 1 39 p=`cat $PID` 40 [ -n "$p" ] && kill -INT $p &> /dev/null 41 rm $PID 42 if [ $? -ne 0 ]; then 43 return 1 44 fi 45 return 0 46 } 47 48 waitstart() { 49 i=0 50 while [ ! -f $PID ] ; do 51 echo -n . 52 sleep 0.2 53 if [ $i -gt 50 ]; then 54 return 1 55 fi 56 i=$(($i + 1)) 57 done 58 } 59 60 waitstop() { 61 i=0 62 while [ -f $PID ] ; do 63 echo -n . 64 sleep 0.2 65 if [ $i -gt 50 ]; then 66 return 1 67 fi 68 i=$(($i + 1)) 69 done 70 } 71 72 _start() { 73 if start_gleam; then 74 if waitstart; then 75 echo "... OK." 76 else 77 echo "... Waiting too long." 78 fi 79 else 80 echo "... FAILED." 81 fi 82 } 83 84 _stop() { 85 if stop_gleam; then 86 if waitstop; then 87 echo "... OK." 88 else 89 echo "... Waiting too long." 90 fi 91 else 92 echo "... FAILED." 93 fi 94 } 95 96 case "$1" in 97 start) 98 echo -n "Starting $NAME: " 99 _start 100 ;; 101 stop) 102 echo -n "Stopping $NAME: " 103 _stop 104 ;; 105 restart) 106 echo "Restarting $NAME" 107 echo -n "Stopping: " 108 _stop 109 echo -n "Starting: " 110 _start 111 ;; 112 *) 113 echo "Usage: $NAME {start|stop|restart}" >&2 114 exit 1 115 ;; 116 esac 117 118 exit 0