|
@@ -17,99 +17,81 @@
|
|
# networks. See https://www.zerotier.com/ for more information.
|
|
# networks. See https://www.zerotier.com/ for more information.
|
|
### END INIT INFO
|
|
### END INIT INFO
|
|
|
|
|
|
-RETVAL=0
|
|
|
|
-prog="zerotier-one"
|
|
|
|
-exec="/var/lib/zerotier-one/zerotier-one"
|
|
|
|
-lockfile="/var/lock/subsys/zerotier-one"
|
|
|
|
-pidfile="/var/lib/zerotier-one/zerotier-one.pid"
|
|
|
|
-
|
|
|
|
-# Source function library.
|
|
|
|
-. /etc/rc.d/init.d/functions
|
|
|
|
|
|
+#
|
|
|
|
+# 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, even systems using Upstart. Upstart native support may
|
|
|
|
+# come in the future.
|
|
|
|
+#
|
|
|
|
|
|
-start() {
|
|
|
|
- if [ $UID -ne 0 ] ; then
|
|
|
|
- echo "User has insufficient privilege."
|
|
|
|
- exit 4
|
|
|
|
- fi
|
|
|
|
- [ -x $exec ] || exit 5
|
|
|
|
- echo -n $"Starting $prog: "
|
|
|
|
- daemon $exec
|
|
|
|
- retval=$?
|
|
|
|
- echo
|
|
|
|
- [ $retval -eq 0 ] && touch $lockfile
|
|
|
|
-}
|
|
|
|
|
|
+zthome=/var/lib/zerotier-one
|
|
|
|
|
|
-stop() {
|
|
|
|
- if [ $UID -ne 0 ] ; then
|
|
|
|
- echo "User has insufficient privilege."
|
|
|
|
- exit 4
|
|
|
|
- fi
|
|
|
|
- echo -n $"Stopping $prog: "
|
|
|
|
- pid=0
|
|
|
|
- if [ -f "$pidfile" ]; then
|
|
|
|
- pid=`cat $pidfile`
|
|
|
|
- fi
|
|
|
|
- if [ "$pid" -gt 0 ]; then
|
|
|
|
- kill -TERM $pid
|
|
|
|
- RETVAL=3
|
|
|
|
- else
|
|
|
|
- failure $"Stopping $prog"
|
|
|
|
- fi
|
|
|
|
- retval=$?
|
|
|
|
- echo
|
|
|
|
- [ $retval -eq 0 ] && rm -f $lockfile
|
|
|
|
-}
|
|
|
|
|
|
+# 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
|
|
|
|
|
|
-restart() {
|
|
|
|
- stop
|
|
|
|
- start
|
|
|
|
-}
|
|
|
|
|
|
+if [ "$UID" -ne 0 ]; then
|
|
|
|
+ echo "Init script must be called as root."
|
|
|
|
+ exit 4
|
|
|
|
+fi
|
|
|
|
|
|
-reload() {
|
|
|
|
- stop
|
|
|
|
- start
|
|
|
|
-}
|
|
|
|
|
|
+if [ ! -f "$zthome/zerotier-one" ]; then
|
|
|
|
+ echo "ZeroTier One is not installed in $zthome."
|
|
|
|
+ exit 5
|
|
|
|
+fi
|
|
|
|
|
|
-force_reload() {
|
|
|
|
- restart
|
|
|
|
-}
|
|
|
|
|
|
+pid=0
|
|
|
|
+if [ -f "$zthome/zerotier-one.pid" ]; then
|
|
|
|
+ pid=`cat $zthome/zerotier-one.pid`
|
|
|
|
+fi
|
|
|
|
|
|
-rh_status() {
|
|
|
|
- status -p $pidfile $prog
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-rh_status_q() {
|
|
|
|
- rh_status >/dev/null 2>&1
|
|
|
|
-}
|
|
|
|
|
|
+running=0
|
|
|
|
+if [ "$pid" -gt 0 ]; then
|
|
|
|
+ if [ "`readlink -nf /proc/$pid/exe`" = "$zthome/zerotier-one" ]; then
|
|
|
|
+ running=1
|
|
|
|
+ else
|
|
|
|
+ rm -f "$zthome/zerotier-one.pid"
|
|
|
|
+ fi
|
|
|
|
+fi
|
|
|
|
|
|
case "$1" in
|
|
case "$1" in
|
|
start)
|
|
start)
|
|
- rh_status_q && exit 0
|
|
|
|
- $1
|
|
|
|
|
|
+ if [ $running -eq 0 ]; then
|
|
|
|
+ echo "ZeroTier One already running."
|
|
|
|
+ exit 0
|
|
|
|
+ fi
|
|
|
|
+ echo "Starting ZeroTier One..."
|
|
|
|
+ nohup zerotier-one >>/dev/null 2>&1 &
|
|
|
|
+ disown %1
|
|
|
|
+ exit 0
|
|
;;
|
|
;;
|
|
stop)
|
|
stop)
|
|
- rh_status_q || exit 0
|
|
|
|
- $1
|
|
|
|
- ;;
|
|
|
|
- restart)
|
|
|
|
- $1
|
|
|
|
|
|
+ if [ $running -gt 0 ]; then
|
|
|
|
+ echo "Stopping ZeroTier One..."
|
|
|
|
+ kill -TERM $pid
|
|
|
|
+ else
|
|
|
|
+ echo "ZeroTier One is not running."
|
|
|
|
+ fi
|
|
;;
|
|
;;
|
|
- reload)
|
|
|
|
- rh_status_q || exit 7
|
|
|
|
- $1
|
|
|
|
- ;;
|
|
|
|
- force-reload)
|
|
|
|
- force_reload
|
|
|
|
|
|
+ restart|reload|force-reload|condrestart|try-restart)
|
|
|
|
+ echo "Restarting ZeroTier One..."
|
|
|
|
+ if [ $running -gt 0 ]; then
|
|
|
|
+ kill -TERM $pid
|
|
|
|
+ fi
|
|
|
|
+ while [ -f "$zthome/zerotier-one.pid" ]; do sleep 1; done
|
|
|
|
+ nohup zerotier-one >>/dev/null 2>&1 &
|
|
|
|
+ disown %1
|
|
;;
|
|
;;
|
|
status)
|
|
status)
|
|
- rh_status
|
|
|
|
- ;;
|
|
|
|
- condrestart|try-restart)
|
|
|
|
- rh_status_q || exit 0
|
|
|
|
- restart
|
|
|
|
|
|
+ if [ $running -gt 0 ]; then
|
|
|
|
+ exit 0
|
|
|
|
+ else
|
|
|
|
+ exit 3
|
|
|
|
+ fi
|
|
;;
|
|
;;
|
|
*)
|
|
*)
|
|
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
|
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
|
exit 2
|
|
exit 2
|
|
esac
|
|
esac
|
|
-exit $?
|
|
|
|
|
|
+
|
|
|
|
+exit 0
|