|
|
|
|
@ -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 |
|
|
|
|
|