2024-01-06 22:35:41 +08:00
|
|
|
#!/bin/sh /etc/rc.common
|
|
|
|
|
|
|
|
START=99
|
|
|
|
|
|
|
|
SERVICE_DAEMONIZE=1
|
|
|
|
SERVICE_WRITE_PID=1
|
|
|
|
USE_PROCD=1
|
|
|
|
#获取目录
|
|
|
|
CRASHDIR=$(cat /etc/profile | grep CRASHDIR | awk -F "\"" '{print $2}')
|
|
|
|
[ -z "$CRASHDIR" ] && CRASHDIR=$(cat ~/.bashrc | grep CRASHDIR | awk -F "\"" '{print $2}')
|
2024-01-10 22:02:15 +08:00
|
|
|
source ${CRASHDIR}/configs/command.env #加载启动命令和启动目录
|
2024-01-06 22:35:41 +08:00
|
|
|
|
|
|
|
start_service() {
|
2024-10-20 11:02:19 +08:00
|
|
|
if [ -n "$(cat $CRASHDIR/configs/ShellCrash.cfg | grep 'firewall_area=5')" ]; then
|
2024-03-09 16:48:29 +08:00
|
|
|
$CRASHDIR/start.sh start_firewall #主旁转发
|
|
|
|
else
|
|
|
|
#本机代理用户
|
|
|
|
[ -n "$(grep 'shellcrash:x:0:7890' /etc/passwd)" ] && USER=shellcrash || USER=root
|
|
|
|
#检测必须文件
|
|
|
|
$CRASHDIR/start.sh bfstart
|
2024-10-20 11:02:19 +08:00
|
|
|
if [ "$?" = "0" ]; then
|
2024-03-09 16:48:29 +08:00
|
|
|
#使用procd创建clash后台进程
|
|
|
|
procd_open_instance
|
|
|
|
procd_set_param user $USER
|
|
|
|
procd_set_param respawn
|
|
|
|
procd_set_param command $COMMAND
|
|
|
|
procd_set_param stderr 0
|
|
|
|
procd_set_param stdout 0
|
|
|
|
procd_close_instance
|
|
|
|
#启动结束执行
|
|
|
|
$CRASHDIR/start.sh afstart &
|
|
|
|
fi
|
2024-01-06 22:35:41 +08:00
|
|
|
fi
|
|
|
|
}
|
2024-10-20 11:02:19 +08:00
|
|
|
stop_service() {
|
2024-01-10 22:02:15 +08:00
|
|
|
procd_close_instance
|
2024-10-20 11:02:19 +08:00
|
|
|
$CRASHDIR/start.sh stop_firewall
|
2024-01-10 22:02:15 +08:00
|
|
|
$CRASHDIR/start.sh unset_proxy
|
|
|
|
}
|