浏览代码

modify init.d

rufengsuixing 5 年之前
父节点
当前提交
0cd60c175f
共有 2 个文件被更改,包括 33 次插入18 次删除
  1. 7 0
      luasrc/model/cbi/AdGuardHome/base.lua
  2. 26 18
      root/etc/init.d/AdGuardHome

+ 7 - 0
luasrc/model/cbi/AdGuardHome/base.lua

@@ -160,6 +160,13 @@ o.description=translate("Will be restore when workdir/data is empty")
 o = s:option(Value, "backupwdpath", translate("Backup workdir path"))
 o = s:option(Value, "backupwdpath", translate("Backup workdir path"))
 o.default     = "/usr/bin/AdGuardHome"
 o.default     = "/usr/bin/AdGuardHome"
 o.datatype    = "string"
 o.datatype    = "string"
+o.validate=function(self, value)
+if fs.stat(value,"type")=="reg" then
+	mp.message ="error!backup dir is a file"
+	return nil
+end 
+return value
+end
 function mp.on_commit(map)
 function mp.on_commit(map)
 	io.popen("/etc/init.d/AdGuardHome reload &")
 	io.popen("/etc/init.d/AdGuardHome reload &")
 end
 end

+ 26 - 18
root/etc/init.d/AdGuardHome

@@ -296,21 +296,24 @@ config_editor()
 boot_service() {
 boot_service() {
 	config_load "${CONFIGURATION}"
 	config_load "${CONFIGURATION}"
 	config_get waitonboot $CONFIGURATION waitonboot "0"
 	config_get waitonboot $CONFIGURATION waitonboot "0"
-	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
+	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
 	fi
 	fi
 }
 }
 start_service() {
 start_service() {
 	# Reading config
 	# Reading config
 	config_load "${CONFIGURATION}"
 	config_load "${CONFIGURATION}"
 	config_get hashpass $CONFIGURATION hashpass ""
 	config_get hashpass $CONFIGURATION hashpass ""
-	if [ ! -z "$hashpass" ]; then
+	if [ -n "$hashpass" ]; then
 		config_editor "users.password" "$hashpass" "$configpath"
 		config_editor "users.password" "$hashpass" "$configpath"
 		uci set $CONFIGURATION.$CONFIGURATION.hashpass=""
 		uci set $CONFIGURATION.$CONFIGURATION.hashpass=""
 	fi
 	fi
@@ -344,7 +347,7 @@ start_service() {
 		echo -e "$workdir/data/sessions.db\n$workdir/data/stats.db\n$workdir/data/querylog.json">>/lib/upgrade/keep.d/luci-app-adguardhome
 		echo -e "$workdir/data/sessions.db\n$workdir/data/stats.db\n$workdir/data/querylog.json">>/lib/upgrade/keep.d/luci-app-adguardhome
 	fi
 	fi
 	config_get logfile $CONFIGURATION logfile ""
 	config_get logfile $CONFIGURATION logfile ""
-	if [ ! -z "$logfile" ]; then
+	if [ -n "$logfile" ]; then
 		ADDITIONAL_ARGS="$ADDITIONAL_ARGS -l $logfile"
 		ADDITIONAL_ARGS="$ADDITIONAL_ARGS -l $logfile"
 	fi
 	fi
 	
 	
@@ -381,7 +384,7 @@ start_service() {
 	fi
 	fi
 	procd_open_instance
 	procd_open_instance
 	get_tz
 	get_tz
-	if [ ! -z "$SET_TZ" ]; then 
+	if [ -n "$SET_TZ" ]; then 
 		procd_set_param env TZ="$SET_TZ" 
 		procd_set_param env TZ="$SET_TZ" 
 	fi
 	fi
 	procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
 	procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
@@ -413,18 +416,23 @@ reload_service()
 	config_load "${CONFIGURATION}"
 	config_load "${CONFIGURATION}"
 	echo "AdGuardHome reloading"
 	echo "AdGuardHome reloading"
 	config_get_bool enabled $CONFIGURATION enabled 0
 	config_get_bool enabled $CONFIGURATION enabled 0
-	procd_send_signal $CONFIGURATION
 	if [ "$enabled" == "0" ]; then
 	if [ "$enabled" == "0" ]; then
+		procd_kill $CONFIGURATION
 		do_redirect 0
 		do_redirect 0
+		config_get hashpass $CONFIGURATION hashpass ""
+		if [ -n "$hashpass" ]; then
+			config_editor "users.password" "$hashpass" "$configpath"
+			uci set $CONFIGURATION.$CONFIGURATION.hashpass=""
+		fi
+	else
+		start
 	fi
 	fi
-	start
 	echo "enabled=$enabled"
 	echo "enabled=$enabled"
 }
 }
 stop_service()
 stop_service()
 {
 {
 	config_load "${CONFIGURATION}"
 	config_load "${CONFIGURATION}"
 	do_redirect 0
 	do_redirect 0
-	procd_send_signal $CONFIGURATION
 	config_get backupwd $CONFIGURATION backupwd "0"
 	config_get backupwd $CONFIGURATION backupwd "0"
 	if [ "$backupwd" == "1" ]; then
 	if [ "$backupwd" == "1" ]; then
 		config_get backupwdpath $CONFIGURATION backupwdpath "/usr/bin/AdGuardHome"
 		config_get backupwdpath $CONFIGURATION backupwdpath "/usr/bin/AdGuardHome"
@@ -435,8 +443,8 @@ stop_service()
 	echo "enabled=$enabled"
 	echo "enabled=$enabled"
 }
 }
 boot() {
 boot() {
-		rc_procd boot_service "$@"
-		if eval "type service_started" 2>/dev/null >/dev/null; then
-			service_started
-		fi
+	rc_procd boot_service "$@"
+	if eval "type service_started" 2>/dev/null >/dev/null; then
+		service_started
+	fi
 }
 }