openwrt.init 875 B

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