UA3F/openwrt/files/ua3f.init
2024-11-08 21:12:27 +08:00

62 lines
1.3 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
USE_PROCD=1
START=99
NAME="ua3f"
PROG="/usr/bin/$NAME"
start_service() {
config_load "$NAME"
local enabled
config_get_bool enabled "enabled" "enabled" "0"
if [ "$enabled" -ne "1" ]; then
return 1
fi
local port
local bind
local ua
local log_level
config_get port "main" "port" "1080"
config_get bind "main" "bind" "127.0.0.1"
config_get ua "main" "ua" "FFF"
config_get ua_regex "main" "ua_regex" "(iPhone|iPad|Android|Macintosh|Windows|Linux)"
config_get log_level "main" "log_level" "info"
chmod o+w /var/log
procd_open_instance "$NAME"
procd_set_param command "$PROG"
procd_append_param command -b "$bind"
procd_append_param command -p $port
procd_append_param command -f "$ua"
procd_append_param command -r "$ua_regex"
procd_append_param command -l $log_level
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1
if id -u shellclash >/dev/null 2>&1; then
procd_set_param user shellclash
elif id -u shellcrash >/dev/null 2>&1; then
procd_set_param user shellcrash
elif id -u nobody >/dev/null 2>&1; then
procd_set_param user nobody
fi
procd_close_instance
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger "$NAME"
}