mirror of
https://github.com/monlor/MIXBOX-ARCHIVE.git
synced 2026-03-11 07:51:54 +00:00
88 lines
2.4 KiB
Bash
88 lines
2.4 KiB
Bash
#!/bin/sh
|
||
source /etc/mixbox/bin/base
|
||
eval `mbdb export zerotier`
|
||
source /etc/mixbox/apps/entware/scripts/functions.sh
|
||
|
||
OPKG="/opt/bin/opkg"
|
||
ZTO="/opt/bin/zerotier-one"
|
||
ZTC="/opt/bin/zerotier-cli"
|
||
|
||
start() {
|
||
|
||
[ -n "$(pidof "${appname}"-one)" ] && logsh "【$service】" "${appname}已经在运行!" && exit 1
|
||
logsh "【$service】" "正在启动${appname}服务... "
|
||
cru a "${appname}" "0 6 * * * ${mbroot}/apps/${appname}/scripts/${appname}.sh restart"
|
||
# Scripts Here
|
||
[ -z "$networkid" ] && logsh "【$service】" "检测到未设置网络ID!关闭插件!" && end
|
||
if [ "$(mbdb get entware.main.enable)" == '0' ]; then
|
||
logsh "【$service】" "检测到Entware服务未启用或未安装!关闭插件!"
|
||
end
|
||
fi
|
||
if [ -z "$($OPKG list-installed | grep ${appname})" ]; then
|
||
logsh "【$service】" "正在opkg安装${appname}程序..."
|
||
$OPKG install ${appname}
|
||
[ $? -ne 0 ] && logsh "【$service】" "安装失败!请检查Entware环境!" && exit 1
|
||
fi
|
||
#添加entware识别
|
||
auto_start_enable
|
||
# open_port
|
||
# write_firewall_start
|
||
daemon $ZTO -d && sleep 1 && $ZTC join $networkid &> /dev/null
|
||
if [ $? -ne 0 ]; then
|
||
logsh "【$service】" "启动${appname}服务失败!"
|
||
else
|
||
logsh "【$service】" "启动${appname}服务完成!"
|
||
fi
|
||
|
||
}
|
||
|
||
stop() {
|
||
|
||
logsh "【$service】" "正在停止${appname}服务... "
|
||
service_stop $ZTO &> /dev/null
|
||
kill -9 "$(pidof "${appname}"-one)"
|
||
#
|
||
[ "$enable" == '0' ] && destroy
|
||
|
||
}
|
||
|
||
destroy() {
|
||
|
||
# End app, Scripts here
|
||
cru d "${appname}"
|
||
#清除entware识别
|
||
auto_start_disable
|
||
return
|
||
|
||
}
|
||
|
||
end() {
|
||
|
||
mbdb set $appname.main.enable=0
|
||
|
||
stop && exit 1
|
||
|
||
}
|
||
|
||
status() {
|
||
|
||
ipaddr=$(ifconfig | grep -A8 ^zt | grep "inet addr" | awk '{print$2}' | cut -d':' -f2)
|
||
if [ -n "$(pidof "${appname}"-one)" ]; then
|
||
port="$(cat /opt/var/lib/zerotier-one/zerotier-one.port)" &> /dev/null
|
||
[ -n "$(echo $ipaddr | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}")" ] && iptext=",内网IP地址:$ipaddr" || iptext=",获取内网IP地址中"
|
||
status="运行端口号:${port}$iptext|1"
|
||
else
|
||
status="未运行|0"
|
||
fi
|
||
mbdb set $appname.main.status="$status"
|
||
}
|
||
|
||
case "$1" in
|
||
start) start ;;
|
||
stop) stop ;;
|
||
restart) stop; start ;;
|
||
reload) stop; start ;;
|
||
status) status ;;
|
||
esac
|
||
|