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.