openwrt.init 847 B

1234567891011121314151617181920212223242526272829303132
  1. #!/bin/sh /etc/rc.common
  2. USE_PROCD=1
  3. START=99
  4. PROG="/usr/bin/sing-box"
  5. start_service() {
  6. config_load "sing-box"
  7. local enabled config_file working_directory
  8. local log_stderr
  9. config_get_bool enabled "main" "enabled" "0"
  10. [ "$enabled" -eq "1" ] || return 0
  11. config_get config_file "main" "conffile" "/etc/sing-box/config.json"
  12. config_get working_directory "main" "workdir" "/usr/share/sing-box"
  13. config_get_bool log_stderr "main" "log_stderr" "1"
  14. procd_open_instance
  15. procd_set_param command "$PROG" run -c "$config_file" -D "$working_directory"
  16. procd_set_param file "$config_file"
  17. procd_set_param stderr "$log_stderr"
  18. procd_set_param limits core="unlimited"
  19. procd_set_param limits nofile="1000000 1000000"
  20. procd_set_param respawn
  21. procd_close_instance
  22. }
  23. service_triggers() {
  24. procd_add_reload_trigger "sing-box"
  25. }