Exécution d'un processus d'arrière-plan dans un travail Pipeline


15

Je cherche un moyen d'exécuter un processus java en arrière-plan en utilisant le pipeline déclaratif Jenkins. Ci-dessous l'extrait de code

stage('Deploy'){
        steps{
            script{
                withEnv(['BUILD_ID=dontkill']) {
                    sh "nohup java -jar test-0.0.1-SNAPSHOT.war &"
                }
            }
        }
}

Déjà au courant de ProcessTreeKiller de Jenkins et chaque réponse suggère de faire de même. J'ai essayé d'utiliser l'environnement à l'intérieur du bloc d'étapes sans succès.

Version Jenkins: 2.60.1

Plugin Pipeline: 1.1.7

Toute aide est grandement appréciée.


Ce qui se produit? Message d'erreur? Échec silencieux?
B Layer

Je n'ai pas de processus java en cours d'exécution. Ceci est la dernière étape de mon pipeline, donc je suppose que jenkins le démarre et le termine dès l'instant suivant.
Dharanidhar

Que se passe-t-il lorsque vous exécutez la commande directement sur l'esclave? Connectez-vous à l'hôte agent / esclave, accédez à l'espace de travail du travail (ou s'il a été nettoyé manuellement, copiez-le quelque part dans le fichier war ... /tmppar exemple) et exécutez tout entre les guillemets doubles.
B Layer

De plus, si l'espace de travail n'a pas été effacé, recherchez un fichier nommé nohup.out dans le répertoire que la commande shell aurait exécuté. nohup se connecte automatiquement à un tel fichier lorsque la sortie n'est pas autrement redirigée.
Couche B du

@BlairM le même script fonctionne bien quand je l'essaye avec l'utilisateur jenkins via un shell non interactif sans connexion. L'exécution entre guillemets doubles ne fait aucune différence. nohup.out est présent mais il est de 0 Ko.
Dharanidhar

Réponses:


16

Toute personne confrontée au même problème et utilisant un projet de pipeline, définissez JENKINS_NODE_COOKIEau lieu de BUILD_ID.

Ne perdez pas votre réglage de l' heure HUDSON_COOKIE, HUDSON_SERVER_COOKIE, JENKINS_COOKIEou JENKINS_SERVER_COOKIE. Aucun d'entre eux ne travaille pour un projet de pipeline.

Reportez-vous à https://issues.jenkins-ci.org/browse/JENKINS-28182 pour plus de détails.


1
Whoa, c'est du baseball juste là. Bon à savoir.
B Layer
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.