diff --git a/package/openwrt/files/etc/init.d/smartdns b/package/openwrt/files/etc/init.d/smartdns index 271f916..b8462a8 100644 --- a/package/openwrt/files/etc/init.d/smartdns +++ b/package/openwrt/files/etc/init.d/smartdns @@ -3,6 +3,7 @@ START=99 NAME=smartdns +USE_PROCD=1 SERVICE_USE_PID=1 SERVICE_WRITE_PID=1 SERVICE_DAEMONIZE=1 @@ -160,7 +161,7 @@ load_server() conf_append "$SERVER" "$ip:$port $ADDITIONAL_ARGS" } -start_service() { +load_service() { local section="$1" args="" @@ -276,23 +277,24 @@ start_service() { echo "conf-file $CUSTOM_CONF" >> $SMARTDNS_CONF_TMP mv $SMARTDNS_CONF_TMP $SMARTDNS_CONF + procd_open_instance "smartdns" if [ "$COREDUMP" = "1" ]; then args="$args -S" - ulimit -c unlimited + procd_set_param limits core="unlimited" fi - service_start /usr/sbin/smartdns $args -c $SMARTDNS_CONF + + procd_set_param command /usr/sbin/smartdns -f -c $SMARTDNS_CONF $args + procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5} + procd_set_param file "$SMARTDNS_CONF" + procd_close_instance } -start() { +start_service() { config_load "smartdns" - config_foreach start_service "smartdns" + config_foreach load_service "smartdns" } -stop() { - service_stop /usr/sbin/smartdns -} - -reload(){ +reload_service(){ stop start }