迅雷快鸟openwrt的原作者项目:https://github.com/sensec/luci-app-xlnetacc/blob/master/files/root/etc/init.d/xlnetacc 原项目并没有采用kill -9的强杀方式 lean项目中迁移后的版本使用kill -9会导致不能正确注销,从而产生如下问题。 1、luci 快鸟web界面中切换从“启用”切换为“不启用”后,短期内无法停止提速效果(因为只是强杀xlnetacc.sh) 2、强杀将导致未注销就丢失了最近一次的sessionid(该变量为xlnetacc.sh的临时变量,强杀后就丢失了)。根据迅雷快鸟的官方规则,在前一次未注销的情况下,假如ip变化,那么新ip在24小时内将无法再次加速。 所以导致了在 a.重启路由 b.重启光猫 c.重新插拔光猫网线 d.web界面中手工停用快鸟后又进行了重新拨号 这些操作都将导致24小时内无法再次提速 原始项目中采用不加-9的kill能够安全发送信号导致注销操作
50 lines
1.2 KiB
Bash
Executable File
50 lines
1.2 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
|
|
START=95
|
|
STOP=10
|
|
SERVICE_DAEMONIZE=1
|
|
|
|
NAME=xlnetacc
|
|
|
|
start() {
|
|
local retry=1
|
|
while pidof "${NAME}.sh" >/dev/null 2>&1; do
|
|
[ $retry -ge 10 ] && return 1 || let retry++
|
|
sleep 1
|
|
done
|
|
|
|
config_load "$NAME"
|
|
config_get_bool enabled "general" "enabled" 0
|
|
config_get_bool down_acc "general" "down_acc" 0
|
|
config_get_bool up_acc "general" "up_acc" 0
|
|
config_get network "general" "network"
|
|
config_get username "general" "account"
|
|
config_get password "general" "password"
|
|
( [ $enabled -eq 0 ] || [ $down_acc -eq 0 -a $up_acc -eq 0 ] || [ -z "$username" -o -z "$password" -o -z "$network" ] ) && return 2
|
|
|
|
logger -p "daemon.notice" -t "$NAME" "XLNetAcc is starting ..."
|
|
service_start /usr/bin/${NAME}.sh --start
|
|
}
|
|
|
|
stop() {
|
|
ps | grep xlnetacc.sh | grep -v 'grep' >/dev/null 2>&1 || return 1
|
|
|
|
local pid spid
|
|
for pid in $(ps | grep xlnetacc.sh | grep -v 'grep' | awk '{print $1}'); do
|
|
echo "Stop XLNetAcc process PID: $pid"
|
|
kill $pid >/dev/null 2>&1
|
|
for spid in $(pgrep -P $pid "sleep"); do
|
|
echo "Stop XLNetAcc process SPID: $spid"
|
|
kill $spid >/dev/null 2>&1
|
|
done
|
|
done
|
|
logger -p "daemon.notice" -t "$NAME" "XLNetAcc has stoped."
|
|
return 0
|
|
}
|
|
|
|
restart() {
|
|
rm -rf /tmp/state/xlnetacc*
|
|
stop && sleep 1
|
|
start
|
|
}
|