Befehl funktioniert auf dem Terminal, aber nicht als Systemdienst Ubuntu 18.04-Server

Befehl funktioniert auf dem Terminal, aber nicht als Systemdienst Ubuntu 18.04-Server

Ich habe es immer wieder im Terminal überprüft und ./go.sh funktioniert beides, kann aber nicht als Dienst gestartet werden. Ich weiß, dass ich es falsch mache, bin mir aber nicht sicher, was.

/root/go.sh

#!/usr/bin/env bash
export PATH=/sbin:/usr/sbin:/bin:/usr/bin

/root/goweb/bin/echoip -t=/root/goweb/bin/index.html

Und


/lib/systemd/system/goweb.service

[Unit]
Description=goweb

[Service]
Type=forking
Restart=always
RestartSec=5s
ExecStart=/root/go.sh

[Install]
WantedBy=multi-user.target

Ich weiß nicht, was jetzt passiert ist, der Dienst wird gestartet und gestoppt und gestartet und gestoppt

Here is the status

goweb.service - goweb
   Loaded: loaded (/lib/systemd/system/goweb.service; enabled; vendor preset: en
   Active: activating (start) since Sun 2020-01-19 19:39:52 UTC; 36s ago
Cntrl PID: 1259 (bash)
    Tasks: 6 (limit: 1151)
   CGroup: /system.slice/goweb.service
           ├─1259 bash /root/go.sh
           └─1268 /root/goweb/bin/echoip -t=/root/goweb/bin/index.html

Jan 19 19:39:52 ip systemd[1]: goweb.service: Service hold-off time over, schedu
Jan 19 19:39:52 ip systemd[1]: goweb.service: Scheduled restart job, restart cou
Jan 19 19:39:52 ip systemd[1]: Stopped goweb.
Jan 19 19:39:52 ip systemd[1]: Starting goweb...
Jan 19 19:39:52 ip go.sh[1259]: echoip: Listening on http://0.0.0.0:8080

Antwort1

Fügen Sie oben in Ihrem Skript go.sh hinzu

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

Wenn weitere Pfade benötigt werden, fügen Sie sie oben hinzu oder fügen Sie den vollständigen Pfad zu jedem Skript oder Befehl hinzu, den Sie in Ihrem Skript ausführen möchten.

verwandte Informationen