Ich führe am Ende einer Jenkins-Bereitstellung einen Shell-Befehl aus, um ein Forever-Skript neu zu starten:
npm install && forever stop app.js && forever start -a -l /var/log/forever.log app.js
Wenn ich das als Benutzer jenkins starte, funktioniert alles einwandfrei und die Konsolenausgabe aus dem Build-Verlauf sagt mir auch, dass das forever-Skript ausgeführt wird. Der Prozess wird jedoch sofort beendet, nachdem die Bereitstellung abgeschlossen und der Ewige Prozess gestoppt wurde.
Was verursacht dieses Verhalten und wie kann ich es beheben?
deployment
node.js
jenkins
Patrick
quelle
quelle
Die Frage ist ziemlich alt, aber in diesem Fall gibt es meiner Meinung nach eine bessere Lösung.
Verwenden Sie das Post-Build-Skript-Plug-In
Das Plugin selbst wird seit Anfang 2016 nicht aktualisiert, erledigt aber die Aufgabe und Sie müssen nicht mit Umgebungsvariablen herumspielen. Scheint mir ein bisschen ordentlicher.
quelle
In den neuen Pipeline-Jobs
BUILD_ID
funktioniert die Einstellung nicht mehr. Stattdessen müssen Sie festlegenJENKINS_NODE_COOKIE
, dass Jenkins Ihren Prozess nach Beendigung des Jobs nicht beendet.Oder selektiver:
Siehe das Wiki auf ProcessTreeKiller und diesen Kommentar im Jenkins Jira .
quelle
Versuche es mit:
quelle