Jenkins(16):Jenkins執行shell腳本
Slave權限
Jenkins slave要是普通用戶起的話,開一下sudo權限
admin ALL=(ALL) NOPASSWD:ALL
配置
腳本需要可執行注意權限
slave腳本 #/bin/bash echo 'haha' echo "我是變量$1" echo 'jenkins-test'
執行
BUILD_ID=DONTKILLME
執行腳本時最好加上don’t kill me,例如啟動tomcat,Nginx這種。
問題的根本在於是Jenkins使用processTreeKiller殺掉了所有子進程,而且這是Jenkins的默認行為。其實回頭來看這個問題,就發現Jenkins的做法非常合理。當一次build異常結束,或被人終止時,必然需要結束所有這次build啟動的子進程。下面的link提供了更多細節,以及解決方法。https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller
執行shell命令注意環境變量