Esecuzione di un processo in background nel processo Pipeline


15

Sto cercando un modo per eseguire un processo Java in background utilizzando la pipeline dichiarativa Jenkins. Di seguito è riportato il frammento di codice

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

Già a conoscenza di ProcessTreeKiller di Jenkins e ogni risposta suggerisce di fare lo stesso. Ho provato a usare l'ambiente all'interno del blocco passi senza fortuna.

Versione Jenkins: 2.60.1

Plug-in della pipeline: 1.1.7

Qualsiasi aiuto è molto apprezzato.


Che succede? Messaggio di errore? Silenzioso fallimento?
B Layer

Non ho un processo Java in esecuzione. Questa è la fase finale della mia pipeline, quindi la mia ipotesi è che jenkins la avvii e la termini il momento successivo.
Dharanidhar,

Cosa succede quando si esegue il comando direttamente sullo slave? Accedi all'host agente / slave, vai nell'area di lavoro del lavoro (o se è stato ripulito, copia manualmente nel file di guerra da qualche parte ... /tmpper esempio) ed esegui tutto tra virgolette doppie.
B Layer

Inoltre, se l'area di lavoro non è stata cancellata, cercare un file chiamato nohup.out in qualunque directory avrebbe eseguito il comando shell. nohup registra automaticamente su tale file quando l'output non viene altrimenti reindirizzato.
B Layer

@BlairM lo stesso script funziona bene quando lo provo con l'utente jenkins tramite una shell non interattiva non di accesso. L'esecuzione tra virgolette doppie non fa differenza. nohup.out è presente ma è 0 KB.
Dharanidhar,

Risposte:


16

Chiunque affronti lo stesso problema e utilizzi il progetto pipeline, imposta JENKINS_NODE_COOKIEinvece di BUILD_ID.

Non sprecare il tuo tempo impostazione HUDSON_COOKIE, HUDSON_SERVER_COOKIE, JENKINS_COOKIEo JENKINS_SERVER_COOKIE. Nessuno di loro lavora per il progetto di pipeline.

Fare riferimento a https://issues.jenkins-ci.org/browse/JENKINS-28182 per maggiori dettagli.


1
Whoa, questo è un po 'dentro il baseball proprio lì. Buono a sapersi.
B Layer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.