Démarrer un process pour toujours dans une étape de construction de Jenkins?

Je lance une command shell à la fin d'un deployment de Jenkins pour redémarrer un script pour toujours:

npm install && forever stop app.js && forever start -a -l /var/log/forever.log app.js 

Quand je cours cela comme un user jenkins, tout fonctionne bien et la sortie de la console à partir de l'histoire de construction me dit aussi que le script pour toujours est en cours d'exécution. Cependant, le process s'arrête juste après la fin du deployment et le process à l'arrêt est arrêté.

Qu'est-ce qui cause ce comportement et comment puis-je le réparer?

Jenkins tue toutes les générations de process par le travail.

Cela peut être désactivé en définissant la variable d'environnement BUILD_ID à autre chose:

 export BUILD_ID=dontKillMe 

voir https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller pour plus de détails

La question est assez ancienne, mais il y a une meilleure solution dans ce cas, je pense.

Utiliser le plug-in de script Post-Build

Le plugin lui-même n'est pas mis à jour depuis le début de 2016, mais il fait le travail et vous ne devez pas utiliser les variables d'environnement. Je me trouve un peu plus plaisant.