Chạy một quy trình nền trong công việc Pipeline


13

Tôi đang tìm cách để chạy một quy trình java trong nền bằng cách sử dụng đường dẫn khai báo Jenkins. Dưới đây là đoạn mã

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

Đã biết về ProcessTreeKiller của Jenkins và mọi câu trả lời đều đề nghị làm như vậy. Tôi đã thử sử dụng môi trường bên trong khối bước không có may mắn.

Phiên bản Jenkins: 2.60.1

Plugin đường ống: 1.1.7

Bất kỳ trợ giúp nào cũng được đánh giá rất cao.


Chuyện gì xảy ra Thông báo lỗi? Im lặng thất bại?
Lớp B

Tôi không có một quá trình java đang chạy. Đây là giai đoạn cuối cùng trong đường ống của tôi vì vậy tôi đoán là jenkins bắt đầu nó và chấm dứt nó ngay khoảnh khắc tiếp theo.
Dharanidhar

Điều gì xảy ra khi bạn chạy lệnh trực tiếp trên nô lệ? Đăng nhập vào máy chủ / máy chủ nô lệ, đi đến không gian làm việc của công việc (hoặc nếu nó được dọn sạch sao chép thủ công trong tệp chiến tranh ở đâu đó ... /tmpchẳng hạn) và chạy mọi thứ giữa các dấu ngoặc kép.
Lớp B

Ngoài ra, nếu không gian làm việc không bị xóa, hãy tìm một tệp có tên nohup.out trong bất kỳ thư mục nào mà lệnh shell sẽ chạy. nohup tự động đăng nhập vào một tệp như vậy khi đầu ra không được chuyển hướng.
Lớp B

@BlairM cùng một kịch bản chạy tốt khi tôi thử nó với người dùng jenkins thông qua một vỏ không tương tác không đăng nhập. Chạy trong dấu ngoặc kép làm cho không có sự khác biệt. nohup.out có mặt nhưng nó là 0 KB.
Dharanidhar

Câu trả lời:


15

Bất kỳ ai phải đối mặt với cùng một vấn đề và sử dụng dự án đường ống, đặt JENKINS_NODE_COOKIEthay vì BUILD_ID.

Dont lãng phí thiết lập thời gian của bạn HUDSON_COOKIE, HUDSON_SERVER_COOKIE, JENKINS_COOKIEhoặc JENKINS_SERVER_COOKIE. Không ai trong số họ làm việc cho dự án đường ống.

Tham khảo https://issues.jenkins-ci.org/browse/JENKINS-28182 để biết thêm chi tiết.


1
Whoa, đó là một số trong bóng chày ngay tại đó. Tốt để biết.
Lớp B
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.