#!/bin/sh # # zerotier-one Virtual distributed Ethernet service # # chkconfig: 2345 11 89 # description: ZeroTier One provides public and private distributed ethernet \ # networks. See https://www.zerotier.com/ for more information. ### BEGIN INIT INFO # Provides: zerotier-one # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start ZeroTier One # Description: ZeroTier One provides public and private distributed ethernet \ # networks. See https://www.zerotier.com/ for more information. ### END INIT INFO # # This script is written to avoid distro-specific dependencies, so it does not # use the rc bash script libraries found on some systems. It should work on # just about anything. # zthome=/var/lib/zerotier-one # Add $zthome to path so we can invoke zerotier-one naked, makes it look # better in a ps listing. export PATH=/bin:/usr/bin:/sbin:/usr/sbin:$zthome if [ "`id -u`" -ne 0 ]; then echo "Init script must be called as root." exit 4 fi if [ ! -f "$zthome/zerotier-one" ]; then echo "ZeroTier One is not installed in $zthome." exit 5 fi pid=0 if [ -f "$zthome/zerotier-one.pid" ]; then pid=`cat $zthome/zerotier-one.pid` fi running=0 if [ "$pid" -gt 0 ]; then exepath=`readlink /proc/$pid/exe 2>/dev/null | grep zerotier-one` if [ -n "$exepath" ]; then running=1 fi fi case "$1" in start) if [ $running -gt 0 ]; then echo "ZeroTier One already running." exit 0 fi echo "Starting ZeroTier One..." zerotier-one -d ;; stop) if [ $running -gt 0 ]; then echo "Stopping ZeroTier One..." kill -TERM $pid sleep 0.25 if [ -f "$zthome/zerotier-one.pid" ]; then sleep 0.5 fi if [ -f "$zthome/zerotier-one.pid" ]; then sleep 1 fi if [ -f "$zthome/zerotier-one.pid" ]; then kill -KILL $pid >>/dev/null 2>&1 rm -f "$zthome/zerotier-one.pid" fi else echo "ZeroTier One is not running." fi ;; restart|reload|force-reload|condrestart|try-restart) echo "Restarting ZeroTier One..." if [ $running -gt 0 ]; then kill -TERM $pid >>/dev/null 2>&1 fi sleep 0.25 if [ -f "$zthome/zerotier-one.pid" ]; then sleep 0.5 fi if [ -f "$zthome/zerotier-one.pid" ]; then sleep 1 fi if [ -f "$zthome/zerotier-one.pid" ]; then kill -KILL $pid >>/dev/null 2>&1 rm -f "$zthome/zerotier-one.pid" fi zerotier-one -d ;; status) if [ $running -gt 0 ]; then exit 0 else exit 3 fi ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" exit 2 esac exit 0