mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-07-28 17:32:00 +08:00
156 lines
4.0 KiB
Bash
156 lines
4.0 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
# Copyright 2023-2024 sirpdboy team <herboy2008@gmail.com>
|
|
|
|
|
|
START=99
|
|
STOP=10
|
|
USE_PROCD=1
|
|
PROG="/usr/bin/uhttpd-watchdog"
|
|
NAME="uhttpd-watchdog"
|
|
LOCK=/var/lock/advancedplus-boot.lock
|
|
|
|
|
|
cpumodeset()
|
|
{
|
|
for i in 0 1 2 3 ;do
|
|
echo $1 > /sys/devices/system/cpu/cpufreq/policy$i/scaling_governor
|
|
done
|
|
}
|
|
|
|
tsoset() {
|
|
tautocore=/etc/init.d/autocore
|
|
[ -f $tautocore ] || return
|
|
if [ "x$(uci -q get advancedplus.@basic[0].tsoset)" = "x1" ] ;then
|
|
sed -i 's/tso on/tso off/g' $tautocore
|
|
$tautocore restart
|
|
else
|
|
sed -i 's/tso off/tso on/g' $tautocore
|
|
$tautocore restart
|
|
fi
|
|
}
|
|
|
|
|
|
|
|
setnetwizard(){
|
|
if [ "x$(uci -q get advancedplus.@basic[0].wizard)" == "x1" ] ; then
|
|
[ `grep -e '-netwizard' /usr/share/luci/menu.d/luci-app-netwizard.json | wc -l` == 1 ] && {
|
|
sed -i 's|-netwizard|-znetwizard|' /usr/share/luci/menu.d/luci-app-netwizard.json
|
|
/etc/init.d/rpcd restart
|
|
}
|
|
uci -q set netwizard.default.showhide="1"
|
|
uci commit netwizard
|
|
else
|
|
uci -q set netwizard.default.showhide="0"
|
|
uci commit netwizard
|
|
[ `grep -e '-znetwizard' /usr/share/luci/menu.d/luci-app-netwizard.json | wc -l` == 1 ] && {
|
|
sed -i 's|-znetwizard|-netwizard|' /usr/share/luci/menu.d/luci-app-netwizard.json
|
|
/etc/init.d/rpcd restart
|
|
}
|
|
|
|
fi
|
|
}
|
|
|
|
|
|
set_login() {
|
|
if [ "x$(uci -q get advancedplus.@basic[0].set_login)" == "x1" ] ; then
|
|
sed -i '$ s|exec /bin/sh -l$|exec /bin/login|' /usr/libexec/login.sh
|
|
else
|
|
sed -i '$ s|exec /bin/login$|exec /bin/sh -l|' /usr/libexec/login.sh
|
|
fi
|
|
}
|
|
|
|
dhcp_domain() {
|
|
if [ "x$(uci -q get advancedplus.@basic[0].dhcp_domain)" = "x1" ] ; then
|
|
local domain_name="time.android.com"
|
|
local domain_ip="203.107.6.88"
|
|
existing_records=$(uci show dhcp | grep "dhcp.@domain\[[0-9]\+\].name='$domain_name'")
|
|
if [ -z "$existing_records" ]; then
|
|
uci add dhcp domain
|
|
uci -q set "dhcp.@domain[-1].name=$domain_name"
|
|
uci -q set "dhcp.@domain[-1].ip=$domain_ip"
|
|
uci commit dhcp
|
|
fi
|
|
else
|
|
existing_records=$(uci show dhcp | grep "dhcp.@domain\[[0-9]\+\].name='$domain_name'")
|
|
if [ -z "$existing_records" ]; then
|
|
uci delete dhcp.@domain[-1].name
|
|
uci delete dhcp.@domain[-1].ip
|
|
uci commit dhcp
|
|
fi
|
|
fi
|
|
}
|
|
advancedset(){
|
|
dev=`ifconfig | grep "Point-to-Point" | cut -d " " -f1`
|
|
[ ! $dev ] && dev=` uci -q get network.wan.ifname ` || dev=` uci -q get network.wan.device `
|
|
[ ! $dev ] && dev=br-lan
|
|
setnetwizard
|
|
set_login
|
|
# tsoset
|
|
sed -i "\/bin\/zsh/d" /etc/profile
|
|
[ "x$(uci -q get advancedplus.@basic[0].usshmenu)" = "x1" ] || echo '/usr/bin/zsh' >> /etc/profile
|
|
}
|
|
|
|
start_service() {
|
|
[ -f $LOCK ] && exit
|
|
[ "x$(uci -q get advancedplus.@basic[0].uhttpd)" = "x1" ] && uhttpd_service
|
|
touch $LOCK
|
|
advancedset
|
|
rm -rf /tmp/luci-*
|
|
rm -f $LOCK 2>/dev/null
|
|
}
|
|
|
|
validate_service_file() {
|
|
if [ ! -x "/usr/sbin/uhttpd" ]; then
|
|
echo "错误:/usr/sbin/uhttpd 不存在或不可执行" >&2
|
|
return 1
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
uhttpd_service() {
|
|
validate_service_file || return 1
|
|
|
|
echo "uhttpd 服务启用检测!"
|
|
if ! /etc/init.d/uhttpd enabled; then
|
|
echo "uhttpd 服务未启用,监控服务不启动" >&2
|
|
return 0
|
|
fi
|
|
|
|
procd_open_instance
|
|
procd_set_param command "$PROG" start
|
|
procd_set_param respawn
|
|
procd_set_param respawn_retry 5
|
|
procd_set_param respawn_threshold 3600
|
|
procd_set_param respawn_timeout 10
|
|
procd_set_param stderr 1
|
|
procd_set_param stdout 1
|
|
# procd_set_param file "$PROG"
|
|
# procd_set_param pidfile "/var/run/${NAME}.pid"
|
|
# procd_append_param env CHECK_INTERVAL=30
|
|
# procd_append_param env MAX_FAILURES=3
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger 'advancedplus'
|
|
}
|
|
|
|
stop_service() {
|
|
|
|
rm -f $LOCK 2>/dev/null
|
|
$PROG stop 2>/dev/null
|
|
rm -f "/var/run/${NAME}.pid"
|
|
}
|
|
|
|
restart() {
|
|
stop
|
|
sleep 2
|
|
start
|
|
}
|
|
|
|
reload() {
|
|
restart
|
|
}
|
|
|