Jenkins oluşturma adımında sonsuza dek bir süreç mi başlatıyorsunuz?


17

Sonsuza kadar komut dosyasını yeniden başlatmak için bir Jenkins dağıtım sonunda bir kabuk komutu çalıştırıyorum:

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

Bir kullanıcı jenkins olarak çalıştırdığımda her şey iyi çalışıyor ve yapı geçmişinden konsol çıktısı da bana sonsuza kadar komut dosyasının çalıştığını söyler. Ancak, dağıtım tamamlandıktan hemen sonra işlem durur ve sonsuza kadar işlem durdurulur.

Bu davranışa ne neden olur ve nasıl düzeltebilirim?

Yanıtlar:


28

Jenkins, işin ortaya çıkardığı tüm süreçleri öldürür.

BUILD_IDOrtam değişkeni başka bir şeye ayarlanarak devre dışı bırakılabilir :

export BUILD_ID=dontKillMe

ayrıntılar için bkz. https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller


1
Bu 'temiz' bir yol mu yoksa başka bir şey tavsiye edilir mi?
Patrick

Bildiğim kadarıyla, ProcessTreeKiller'i devre dışı bırakmanın tek yolu
rcomblen


Bundan önce alıyordum. [ssh-agent] Durduruldu. Sinyal 15 ile öldürüldü. Sinyal 15 ile öldürüldü. Bundan sonra [ssh-agent] Durduruldu. Ama hala öldürülüyor :(
Amit Kumar Gupta

1

Soru oldukça eski, ama bence bu durumda daha iyi bir çözüm var.

Derleme Sonrası Komut Dosyası Eklentisini Kullan

Eklentinin kendisi 2016'nın başından beri güncellenmiyor, ancak işi yapıyor ve ortam değişkenleriyle uğraşmanıza gerek yok. Bana biraz daha temiz görünüyor.


0

Yeni Boru Hattı işlerinde, ayar BUILD_IDartık çalışmıyor. Bunun yerine, JENKINS_NODE_COOKIEiş bittiğinde Jenkins'in işleminizi öldürmesini önlemek için ayarlamanız gerekir .

sh 'export JENKINS_NODE_COOKIE=dontKillMe'
sh 'myProcess'

Veya daha seçici olarak:

sh 'JENKINS_NODE_COOKIE=dontKillMe myProcess'

ProcessTreeKiller ile ilgili wiki'yi ve bu yorumu Jenkins Jira'da görün .


0

Şunu deneyin:

(
  set -e
  export BUILD_ID=dontKillMe
  export JENKINS_NODE_COOKIE=dontKillMe
  npm install
  forever stop app.js
  forever start -a -l /var/log/forever.log app.js &
) &
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.