Nohup funktioniert nicht beim Ausführen eines Skripts von Jenkins

Nohup funktioniert nicht beim Ausführen eines Skripts von Jenkins

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

verwandte Informationen