immortalwrt/package/lienol/luci-app-trojan-server/root/etc/init.d/trojan_server
2020-04-07 04:14:36 +08:00

60 lines
1.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh /etc/rc.common
# Copyright (C) 2019-2020 Lienol <lawlienol@gmail.com>
START=99
CONFIG=trojan_server
CONFIG_PATH=/var/etc/$CONFIG
LOG_PATH=/var/log/$CONFIG
LOG_APP_FILE=$LOG_PATH/app.log
echolog() {
echo -e "$(date "+%Y-%m-%d %H:%M:%S"): $1" >> $LOG_APP_FILE
}
gen_trojan_config_file() {
config_get enable $1 enable
[ "$enable" = "0" ] && return 0
config_get remarks $1 remarks
config_get port $1 port
config_get ssl_certFile $1 ssl_certFile
config_get ssl_keyFile $1 ssl_keyFile
[ ! -f "$ssl_certFile" ] && echolog "$remarks $port 找不到HTTPS公钥文件运行失败" && exit
[ ! -f "$ssl_keyFile" ] && echolog "$remarks $port 找不到HTTPS私钥文件运行失败" && exit
lua /usr/lib/lua/luci/model/cbi/trojan_server/api/gen_trojan_config_file.lua $1 > $CONFIG_PATH/$1.json
echolog "$remarks $port 生成并运行 Trojan 配置文件 - $CONFIG_PATH/$1.json"
trojan -c $CONFIG_PATH/$1.json >/dev/null 2>&1 &
}
start_trojan_server() {
mkdir -p $CONFIG_PATH $LOG_PATH
touch $LOG_APP_FILE
config_foreach gen_trojan_config_file "user"
fw3 reload >/dev/null 2>&1 &
}
stop_trojan_server() {
fw3 reload >/dev/null 2>&1
ps -w | grep "$CONFIG_PATH/" | grep -v "grep" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
rm -rf $CONFIG_PATH
rm -rf $LOG_PATH
}
start() {
config_load $CONFIG
enable=$(uci get $CONFIG.@global[0].enable)
if [ "$enable" = "0" ];then
stop_trojan_server
else
start_trojan_server
fi
}
stop() {
stop_trojan_server
}
restart() {
stop
start
}