update zerotier module to support rootless app
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
#!/system/bin/sh
|
||||
|
||||
MODDIR=${0%/*}
|
||||
|
||||
# load variables
|
||||
. $MODDIR/vars.sh
|
||||
|
||||
# LD_LIBRARY_PATH for NDK
|
||||
export LD_LIBRARY_PATH=/system/lib64:/data/adb/zerotier/lib
|
||||
|
||||
log_cli() {
|
||||
echo -e "$1" >> $ZTROOT/run/cli.out
|
||||
}
|
||||
log() {
|
||||
t=`date +"%m-%d %H:%M:%S.%3N"`
|
||||
echo -e "[$t][$$][L] $@" >> $DAEMON_LOG
|
||||
log_cli "$@"
|
||||
}
|
||||
_stop() {
|
||||
pid=`pidof zerotier-one`
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "zerotier-one not running"
|
||||
return
|
||||
fi
|
||||
|
||||
kill -9 $pid
|
||||
if [[ $? -ne 0 ]]; then
|
||||
log "kill zerotier-one failed"
|
||||
return
|
||||
fi
|
||||
|
||||
wait
|
||||
sleep 1 # sometimes it fails without sleeping
|
||||
|
||||
log "stopped zerotier-one"
|
||||
}
|
||||
_start() {
|
||||
if pid=`pidof zerotier-one`; then
|
||||
log "zerotier-one already running pid $pid"
|
||||
else
|
||||
$ZTROOT/zerotier-one -d >> $ZT_LOG 2>&1 &
|
||||
pid=`pidof zerotier-one`
|
||||
log "started zerotier-one pid $pid"
|
||||
fi
|
||||
}
|
||||
_status() {
|
||||
# fake systemd lol
|
||||
if pid=`pidof zerotier-one`; then
|
||||
log_cli "\033[32m●\033[0m zerotier-one.service - ZeroTier One - Global Area Networking"
|
||||
log_cli " Active: \033[32mactive (running)\033[0m"
|
||||
log_cli " Main PID: $pid (zerotier-one)"
|
||||
else
|
||||
read pid_ < $ZTROOT/home/zerotier-one.pid
|
||||
log_cli "○ zerotier-one.service - ZeroTier One - Global Area Networking"
|
||||
log_cli " Active: inactive (dead)"
|
||||
log_cli " Main PID: $pid_ (code=exited)"
|
||||
fi
|
||||
}
|
||||
|
||||
# ----------------------------------------------
|
||||
# call from inotifyd
|
||||
# ----------------------------------------------
|
||||
|
||||
if [[ $# == 2 && "$1" == "w" ]]; then
|
||||
read cmd < $2
|
||||
rm -f $ZTROOT/run/cli.out
|
||||
|
||||
case "$cmd" in
|
||||
"start") _start;;
|
||||
"stop") _stop;;
|
||||
"restart") _stop; _start;;
|
||||
"status") _status;;
|
||||
*) log "unknown command $cmd";;
|
||||
esac
|
||||
|
||||
if [[ -f "$ZTROOT/run/cli.pid" ]]; then
|
||||
read cpid < $ZTROOT/run/cli.pid
|
||||
rm -f $ZTROOT/run/cli.pid
|
||||
kill -SIGUSR1 $cpid
|
||||
fi
|
||||
|
||||
exit 0
|
||||
fi
|
||||
Reference in New Issue
Block a user