mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-07-30 02:31:47 +08:00
70 lines
1.6 KiB
Bash
Executable File
70 lines
1.6 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
|
|
START=95
|
|
USE_PROCD=1
|
|
LOGGER="logger -t [NPC]"
|
|
|
|
npc_Path="$(command -v npc)"
|
|
|
|
start_service() {
|
|
if [ -f /usr/local/bin/npc ] ; then
|
|
${LOGGER} "Moving npc to /usr/bin ..."
|
|
mv -f /usr/local/bin/npc /usr/bin/npc
|
|
fi
|
|
if [ -f /usr/local/bin/npc-update ] ; then
|
|
${LOGGER} "Moving npc-update to /usr/bin ..."
|
|
mv -f /usr/local/bin/npc-update /usr/bin/npc-update
|
|
fi
|
|
local basic_list="enable server_addr protocol vkey dns extra_args"
|
|
for i in $(echo $basic_list);do
|
|
local eval $i="$(uci_get_by_type npc 0 $i)"
|
|
done;unset i
|
|
|
|
if [ "$enable" != "1" ]; then
|
|
${LOGGER} "NPS Client(NPC) is disabled"
|
|
return
|
|
fi
|
|
|
|
${LOGGER} "Starting NPS Client(NPC) ..."
|
|
|
|
cmd_args=""
|
|
if ! printf '%s\n' "$extra_args" | grep -q -- '\-server='; then
|
|
cmd_args="$cmd_args -server=${server_addr}"
|
|
fi
|
|
if ! printf '%s\n' "$extra_args" | grep -q -- '\-vkey='; then
|
|
cmd_args="$cmd_args -vkey=${vkey}"
|
|
fi
|
|
if ! printf '%s\n' "$extra_args" | grep -q -- '\-type='; then
|
|
cmd_args="$cmd_args -type=${protocol}"
|
|
fi
|
|
if ! printf '%s\n' "$extra_args" | grep -q -- '\-dns_server='; then
|
|
cmd_args="$cmd_args -dns_server=${dns}"
|
|
fi
|
|
|
|
[ -n "$extra_args" ] && cmd_args="$cmd_args $extra_args"
|
|
|
|
if ! printf '%s\n' "$cmd_args" | grep -q -- '\-log='; then
|
|
cmd_args="$cmd_args -log=off"
|
|
fi
|
|
|
|
procd_open_instance
|
|
procd_set_param command $npc_Path $cmd_args
|
|
procd_set_param respawn
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
procd_close_instance
|
|
}
|
|
|
|
stop_service() {
|
|
${LOGGER} "Stopping NPS Client(NPC) ..."
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "npc"
|
|
}
|
|
|
|
uci_get_by_type() {
|
|
local ret=$(uci get npc.@$1[$2].$3 2>/dev/null)
|
|
echo ${ret:=$4}
|
|
}
|