Jenkins deklaratif boru hattı kullanarak arka planda bir java işlemi çalıştırmak için bir yol arıyorum. Kod snippet'i aşağıdadır
stage('Deploy'){
steps{
script{
withEnv(['BUILD_ID=dontkill']) {
sh "nohup java -jar test-0.0.1-SNAPSHOT.war &"
}
}
}
}
Jenkins'ten ProcessTreeKiller'in zaten farkında ve her cevap aynı şeyi yapmayı öneriyor. Adım bloğu içindeki ortamı şanssız kullanmayı denedim.
Jenkins versiyonu: 2.60.1
Pipeline eklentisi: 1.1.7
Herhangi bir yardım büyük beğeni topluyor.
Ne oluyor? Hata mesajı? Sessiz başarısız mı?
—
B Layer
Çalışan bir java sürecim yok. Bu benim boru hattımın son aşaması, bu yüzden tahminim, jenkinlerin onu başlatması ve bir sonraki anı sonlandırması.
—
Dharanidhar
Komutu doğrudan slave üzerinde çalıştırdığınızda ne olur? Ajan / slave ana bilgisayarında oturum açın, işin çalışma alanına gidin (veya savaş dosyasında manuel olarak temizlendiyse ...
—
B Katmanı
/tmp
örneğin) ve çift tırnak işaretleri arasında her şeyi çalıştırın.
Ayrıca, çalışma alanı silinmediyse, shell komutunun çalıştırdığı dizinde nohup.out adlı bir dosya arayın. çıktı başka bir şekilde yönlendirilmediğinde nohup otomatik olarak böyle bir dosyada oturum açar.
—
B Katmanı
@BlairM, giriş yapmayan etkileşimli olmayan bir kabuk üzerinden jenkins kullanıcısıyla denediğimde aynı komut dosyası iyi çalışıyor. Çift tırnak işareti ile çalışmak fark etmez. nohup.out var ama 0 KB.
—
Dharanidhar