diff --git a/internal/web/job/node_traffic_sync_job.go b/internal/web/job/node_traffic_sync_job.go index aaa3b22b0..b81938c88 100644 --- a/internal/web/job/node_traffic_sync_job.go +++ b/internal/web/job/node_traffic_sync_job.go @@ -140,7 +140,9 @@ func (j *NodeTrafficSyncJob) Run() { } if clientsDisabled { if restartOnDisable, settingErr := j.settingService.GetRestartXrayOnClientDisable(); settingErr == nil && restartOnDisable { - if err := j.xrayService.RestartXray(true); err != nil { + // Not forced: a client only nodes serve leaves the local config unchanged, and a node + // deciding when this tick disables clients must not decide when local users drop. + if err := j.xrayService.RestartXray(false); err != nil { logger.Warning("node traffic sync: restart xray after disabling clients failed:", err) j.xrayService.SetToNeedRestart() }