소스 검색

change:change wait on boot to restart when ready

rufengsuixing 5 년 전
부모
커밋
aca0ce28d7
4개의 변경된 파일24개의 추가작업 그리고 21개의 파일을 삭제
  1. 1 1
      luasrc/model/cbi/AdGuardHome/base.lua
  2. 5 2
      po/zh-cn/AdGuardHome.po
  3. 13 13
      root/etc/init.d/AdGuardHome
  4. 5 5
      root/usr/share/AdGuardHome/waitnet.sh

+ 1 - 1
luasrc/model/cbi/AdGuardHome/base.lua

@@ -204,7 +204,7 @@ o.widget = "checkbox"
 o.default = nil
 o.optional=true
 ---- wait net on boot
-o = s:option(Flag, "waitonboot", translate("Boot delay until network ok"))
+o = s:option(Flag, "waitonboot", translate("On boot when network ok restart"))
 o.default = 1
 o.optional = true
 ---- backup workdir on shutdown

+ 5 - 2
po/zh-cn/AdGuardHome.po

@@ -185,8 +185,8 @@ msgstr "日志文件"
 msgid "querylog.json"
 msgstr "审计日志.json"
 #
-msgid "Boot delay until network ok"
-msgstr "开机时直到网络准备好再启动"
+msgid "On boot when network ok restart"
+msgstr "开机后网络准备好时重启"
 
 msgid "Backup workdir files when shutdown"
 msgstr "在关机时备份工作目录文件"
@@ -261,3 +261,6 @@ msgstr "未知"
 
 msgid "Keep database when system upgrade"
 msgstr "系统升级时保留数据"
+
+msgid "Boot delay until network ok"
+msgstr "开机时直到网络准备好再启动"

+ 13 - 13
root/etc/init.d/AdGuardHome

@@ -7,10 +7,11 @@ STOP=01
 
 CONFIGURATION=AdGuardHome
 CRON_FILE=/etc/crontabs/root
-EXTRA_COMMANDS="do_redirect testbackup test_crontab"
+EXTRA_COMMANDS="do_redirect testbackup test_crontab force_reload"
 EXTRA_HELP="        do_redirect 0 or 1\
         testbackup backup or restore\
-		test_crontab"
+		test_crontab
+		force_reload"
 set_forward_dnsmasq()
 {
 	local PORT="$1"
@@ -123,7 +124,9 @@ service_triggers() {
 	procd_add_reload_trigger "$CONFIGURATION"
 	[ "$(uci get AdGuardHome.AdGuardHome.redirect)" == "redirect" ] && procd_add_reload_trigger firewall
 }
-
+force_reload(){
+	procd_send_signal "$CONFIGURATION"
+}
 get_tz()
 {
 	SET_TZ=""
@@ -321,18 +324,15 @@ boot_service() {
 	config_load "${CONFIGURATION}"
 	config_get waitonboot $CONFIGURATION waitonboot "0"
 	config_get_bool enabled $CONFIGURATION enabled 0
-	if [ "$enabled" == "1" ]; then
-		if [ "$waitonboot" == "1" ]; then
-			_do_redirect 0
-			procd_open_instance "waitnet"
-			procd_set_param command "/usr/share/AdGuardHome/waitnet.sh"
-			procd_close_instance
-			echo "no net start pinging"
-		else
-			start_service
-		fi
+	start_service
+	if [ "$enabled" == "1" ] && [ "$waitonboot" == "1" ]; then
+		procd_open_instance "waitnet"
+		procd_set_param command "/usr/share/AdGuardHome/waitnet.sh"
+		procd_close_instance
+		echo "no net start pinging"
 	fi
 }
+
 testbackup(){
 	config_load "${CONFIGURATION}"
 	if [ "$1" == "backup" ]; then

+ 5 - 5
root/usr/share/AdGuardHome/waitnet.sh

@@ -5,29 +5,29 @@ while :
 do
 	ping -c 1 -W 1 -q www.baidu.com 1>/dev/null 2>&1
 	if [ "$?" == "0" ]; then
-		/etc/init.d/AdGuardHome reload
+		/etc/init.d/AdGuardHome force_reload
 		break
 	fi
 	ping -c 1 -W 1 -q 202.108.22.5 1>/dev/null 2>&1
 	if [ "$?" == "0" ]; then
-		/etc/init.d/AdGuardHome reload
+		/etc/init.d/AdGuardHome force_reload
 		break
 	fi
 	sleep 5
 	ping -c 1 -W 1 -q www.google.com 1>/dev/null 2>&1
 	if [ "$?" == "0" ]; then
-		/etc/init.d/AdGuardHome reload
+		/etc/init.d/AdGuardHome force_reload
 		break
 	fi
 	ping -c 1 -W 1 -q 8.8.8.8 1>/dev/null 2>&1
 	if [ "$?" == "0" ]; then
-		/etc/init.d/AdGuardHome reload
+		/etc/init.d/AdGuardHome force_reload
 		break
 	fi
 	sleep 5
 	count=$((count+1))
 	if [ $count -gt 18 ]; then
-		/etc/init.d/AdGuardHome reload
+		/etc/init.d/AdGuardHome force_reload
 		break
 	fi
 done