windows: error filter

This commit is contained in:
mhsanaei 2025-09-14 20:04:12 +02:00
parent 6d41320ed7
commit 46de886b53
No known key found for this signature in database
GPG key ID: D875CD086CF668A0
2 changed files with 18 additions and 1 deletions

View file

@ -2,6 +2,7 @@ package xray
import (
"regexp"
"runtime"
"strings"
"x-ui/logger"
@ -20,6 +21,12 @@ func (lw *LogWriter) Write(m []byte) (n int, err error) {
// Convert the data to a string
message := strings.TrimSpace(string(m))
msgLowerAll := strings.ToLower(message)
// Suppress noisy Windows process-kill signal that surfaces as exit status 1
if runtime.GOOS == "windows" && strings.Contains(msgLowerAll, "exit status 1") {
return len(m), nil
}
// Check if the message contains a crash
if crashRegex.MatchString(message) {

View file

@ -9,6 +9,7 @@ import (
"os"
"os/exec"
"runtime"
"strings"
"syscall"
"time"
@ -224,6 +225,15 @@ func (p *process) Start() (err error) {
go func() {
err := cmd.Run()
if err != nil {
// On Windows, killing the process results in "exit status 1" which isn't an error for us
if runtime.GOOS == "windows" {
errStr := strings.ToLower(err.Error())
if strings.Contains(errStr, "exit status 1") {
// Suppress noisy log on graceful stop
p.exitErr = err
return
}
}
logger.Error("Failure in running xray-core:", err)
p.exitErr = err
}
@ -239,7 +249,7 @@ func (p *process) Stop() error {
if !p.IsRunning() {
return errors.New("xray is not running")
}
if runtime.GOOS == "windows" {
return p.cmd.Process.Kill()
} else {