#!/bin/sh /etc/rc.common # # Copyright (C) 2022 by nekohasekai # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # START=99 USE_PROCD=1 ##### ONLY CHANGE THIS BLOCK ###### PROG=/usr/bin/sing-box # where is sing-box RES_DIR=/etc/sing-box/ # resource dir / working dir / the dir where you store ip/domain lists CONF=./config.json # where is the config file, it can be a relative path to $RES_DIR ##### ONLY CHANGE THIS BLOCK ###### start_service() { procd_open_instance procd_set_param command $PROG run -D $RES_DIR -c $CONF procd_set_param user root procd_set_param limits core="unlimited" procd_set_param limits nofile="1000000 1000000" procd_set_param stdout 1 procd_set_param stderr 1 procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}" procd_close_instance iptables -I FORWARD -o tun+ -j ACCEPT echo "sing-box is started!" } stop_service() { service_stop $PROG iptables -D FORWARD -o tun+ -j ACCEPT echo "sing-box is stopped!" } reload_service() { stop sleep 2s echo "sing-box is restarted!" start }