github.com/slackhq/nebula@v1.9.0/examples/service_scripts/nebula.init.d.sh (about) 1 #!/bin/sh 2 ### BEGIN INIT INFO 3 # Provides: nebula 4 # Required-Start: $local_fs $network 5 # Required-Stop: $local_fs $network 6 # Default-Start: 2 3 4 5 7 # Default-Stop: 0 1 6 8 # Description: nebula mesh vpn client 9 ### END INIT INFO 10 11 SCRIPT="/usr/local/bin/nebula -config /etc/nebula/config.yml" 12 RUNAS=root 13 14 PIDFILE=/var/run/nebula.pid 15 LOGFILE=/var/log/nebula.log 16 17 start() { 18 if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE); then 19 echo 'Service already running' >&2 20 return 1 21 fi 22 echo 'Starting nebula serviceā¦' >&2 23 local CMD="$SCRIPT &> \"$LOGFILE\" & echo \$!" 24 su -c "$CMD" $RUNAS > "$PIDFILE" 25 echo 'Service started' >&2 26 } 27 28 stop() { 29 if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then 30 echo 'Service not running' >&2 31 return 1 32 fi 33 echo 'Stopping nebula serviceā¦' >&2 34 kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE" 35 echo 'Service stopped' >&2 36 } 37 38 case "$1" in 39 start) 40 start 41 ;; 42 stop) 43 stop 44 ;; 45 restart) 46 stop 47 start 48 ;; 49 *) 50 echo "Usage: $0 {start|stop|restart}" 51 esac