add xray-core restart option in cli

This commit is contained in:
Alireza Ahmadi
2026-02-20 00:08:36 +01:00
parent 9d93468332
commit 6781b0f7ae
4 changed files with 50 additions and 28 deletions

15
main.go
View File

@@ -22,7 +22,6 @@ import (
"github.com/op/go-logging"
"github.com/shirou/gopsutil/v4/net"
xrayCore "github.com/xtls/xray-core/core"
)
func runWebServer() {
@@ -68,7 +67,7 @@ func runWebServer() {
sigCh := make(chan os.Signal, 1)
// Trap shutdown signals
signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGTERM)
signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGTERM, syscall.SIGUSR1)
for {
sig := <-sigCh
@@ -99,6 +98,12 @@ func runWebServer() {
log.Println(err)
return
}
case syscall.SIGUSR1:
logger.Info("Received USR1 signal, restarting xray-core...")
err := server.RestartXray()
if err != nil {
logger.Error("Failed to restart xray-core:", err)
}
default:
server.Stop()
subServer.Stop()
@@ -473,9 +478,3 @@ func main() {
settingCmd.Usage()
}
}
func startXray() {
conf := xrayCore.Config{}
core, _ := xrayCore.New(&conf)
core.Start()
}