script systemd auto restart on crash

This commit is contained in:
yusing 2024-03-29 21:43:43 +00:00
parent 662190e09e
commit a0be1f11d3
4 changed files with 22 additions and 7 deletions

View file

@ -22,6 +22,8 @@
3. Start editing config files in `http://<ip>:8080` 3. Start editing config files in `http://<ip>:8080`
4. Check logs / status with `systemctl status go-proxy`
## Setup (alternative method) ## Setup (alternative method)
1. Download the latest release and extract somewhere 1. Download the latest release and extract somewhere

View file

@ -91,11 +91,15 @@ mkdir -p /etc/systemd/system
cat <<EOF > /etc/systemd/system/go-proxy.service cat <<EOF > /etc/systemd/system/go-proxy.service
[Unit] [Unit]
Description=go-proxy reverse proxy Description=go-proxy reverse proxy
After=network.target After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service
[Service] [Service]
Type=simple Type=simple
ExecStart=${APP_ROOT}/bin/go-proxy ExecStart=${APP_ROOT}/bin/go-proxy
WorkingDirectory=${APP_ROOT} WorkingDirectory=${APP_ROOT}
Environment="IS_SYSTEMD=1"
Restart=on-failure
RestartSec=1s
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF

View file

@ -175,3 +175,8 @@ var logLevel = func() logrus.Level {
} }
return logrus.GetLevel() return logrus.GetLevel()
}() }()
var isRunningAsService = func() bool {
v := os.Getenv("IS_SYSTEMD")
return v == "1"
}()

View file

@ -19,12 +19,16 @@ func main() {
args := getArgs() args := getArgs()
if isRunningAsService {
logrus.SetFormatter(&logrus.JSONFormatter{})
} else {
logrus.SetFormatter(&logrus.TextFormatter{ logrus.SetFormatter(&logrus.TextFormatter{
ForceColors: true, ForceColors: true,
DisableColors: false, DisableColors: false,
FullTimestamp: true, FullTimestamp: true,
TimestampFormat: "01-02 15:04:05", TimestampFormat: "01-02 15:04:05",
}) })
}
if args.Command == CommandReload { if args.Command == CommandReload {
err := utils.reloadServer() err := utils.reloadServer()