- #!/bin/sh /etc/rc.common
-
- USE_PROCD=1
- START=99
-
- CONF="xray"
- PROG="/usr/bin/xray"
- CAPA_FILE="/etc/capabilities/xray.json"
-
- start_service() {
- config_load "$CONF"
-
- local enabled
- config_get enabled "enabled" "enabled" "0"
- [ "$enabled" -eq "0" ] && exit 1
-
- local confdir
- local conffiles
- local datadir
- local format
- local fullcone
-
- config_get confdir "config" "confdir"
- config_get conffiles "config" "conffiles"
- config_get datadir "config" "datadir" "/usr/share/xray"
- config_get format "config" "format" "json"
- config_get fullcone "enabled" "fullcone" "0"
-
- procd_open_instance "$CONF"
- procd_set_param command "$PROG" run
- [ -n "$confdir" ] && procd_append_param command -confdir "$confdir"
- [ -n "$conffiles" ] && {
- for i in $conffiles
- do
- procd_append_param command -config "$i"
- done
- }
- procd_append_param command -format "$format"
- [ "$fullcone" -eq "0" ] && procd_set_param env XRAY_CONE_DISABLED="true"
- procd_set_param env XRAY_LOCATION_ASSET="$datadir"
- procd_set_param file $conffiles
-
- procd_set_param stdout 1
- procd_set_param stderr 1
- procd_set_param respawn
-
- [ -x "/sbin/ujail" -a -e "$CAPA_FILE" ] && {
- procd_add_jail "$CONF"
- procd_set_param capabilities "$CAPA_FILE"
- procd_set_param user nobody
- procd_set_param no_new_privs 1
- }
- procd_close_instance
- }
-
- reload_service() {
- stop
- start
- }
-
- service_triggers() {
- procd_add_reload_trigger "$CONF"
- }
|