diff --git a/main/main.go b/main/main.go index 6179b676a..638134083 100644 --- a/main/main.go +++ b/main/main.go @@ -105,7 +105,8 @@ func main() { server, err := startV2Ray() if err != nil { fmt.Println(err.Error()) - os.Exit(-1) + // Configuration error. Exit with a special value to prevent systemd from restarting. + os.Exit(23) } if *test { diff --git a/release/config/systemd/v2ray.service b/release/config/systemd/v2ray.service index fb5a87453..3e52a0a35 100644 --- a/release/config/systemd/v2ray.service +++ b/release/config/systemd/v2ray.service @@ -13,6 +13,7 @@ Type=simple PIDFile=/var/run/v2ray.pid ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json Restart=on-failure +RestartPreventExitStatus=23 # Configuration error [Install] WantedBy=multi-user.target