|
@@ -1,7 +1,7 @@
|
|
|
#!/bin/sh
|
|
|
|
|
|
grepzt() {
|
|
|
- [ ! -n "$(cat /var/lib/zerotier-one/zerotier-one.pid)" -a -d "/proc/$(cat /var/lib/zerotier-one/zerotier-one.pid)" ]
|
|
|
+ [ -f /var/lib/zerotier-one/zerotier-one.pid -a -n "$(cat /var/lib/zerotier-one/zerotier-one.pid)" -a -d "/proc/$(cat /var/lib/zerotier-one/zerotier-one.pid)" ]
|
|
|
return $?
|
|
|
}
|
|
|
|
|
@@ -40,26 +40,45 @@ killzerotier() {
|
|
|
|
|
|
trap killzerotier INT TERM
|
|
|
|
|
|
+echo "Configuring networks to join"
|
|
|
+mkdir -p /var/lib/zerotier-one/networks.d
|
|
|
+
|
|
|
+echo "joining networks: $@"
|
|
|
+for i in "$@"
|
|
|
+do
|
|
|
+ echo "Configuring join for $i"
|
|
|
+ touch "/var/lib/zerotier-one/networks.d/${i}.conf"
|
|
|
+done
|
|
|
+
|
|
|
echo "starting zerotier"
|
|
|
nohup /usr/sbin/zerotier-one &
|
|
|
|
|
|
while ! grepzt
|
|
|
do
|
|
|
echo "zerotier hasn't started, waiting a second"
|
|
|
+
|
|
|
+ if [ -f nohup.out ]
|
|
|
+ then
|
|
|
+ tail -n 10 nohup.out
|
|
|
+ fi
|
|
|
+
|
|
|
sleep 1
|
|
|
done
|
|
|
|
|
|
-echo "joining networks: $@"
|
|
|
+echo "Writing healthcheck for networks: $@"
|
|
|
|
|
|
-for i in "$@"
|
|
|
+cat >/healthcheck.sh <<EOF
|
|
|
+#!/bin/bash
|
|
|
+for i in $@
|
|
|
do
|
|
|
- echo "joining $i"
|
|
|
-
|
|
|
- while ! zerotier-cli join "$i"
|
|
|
- do
|
|
|
- echo "joining $i failed; trying again in 1s"
|
|
|
- sleep 1
|
|
|
- done
|
|
|
+ [ "\$(zerotier-cli get \$i status)" = "OK" ] || exit 1
|
|
|
done
|
|
|
+EOF
|
|
|
+
|
|
|
+chmod +x /healthcheck.sh
|
|
|
|
|
|
-sleep infinity
|
|
|
+echo "Sleeping infinitely"
|
|
|
+while true
|
|
|
+do
|
|
|
+ sleep 1
|
|
|
+done
|