Ich habe ein Bash-Skript, das Folgendes ausführt
nohup ws --port 8080 &
Wenn ich dieses Skript direkt auf dem Remote-Server ausführe und die Verbindung schließe, besteht der Prozess weiterhin. Aber wenn ich das „SSH-Plugin“ von Jenkins verwende, wird der Prozess gestoppt, nachdem Jenkins die Verbindung geschlossen hat. Um dieses Skript auszuführen, verwende ich den einfachen Befehl sh scriptName.sh.
Antwort1
Die beste einfache Lösung ist, „at now“ statt „nohup“ zu verwenden.
Geben Sie in Ihrem Job-Jenkins (Shell ausführen) Folgendes ein:
set +e #so "at now" will run even if java -jar fails
#Run java app in background
echo "java -jar $(ls | grep *.jar | head -n 1)" | at now + 1 min