Tôi đang bắt đầu các ảo ảnh với các đối số cụ thể như một phần công việc của tôi.Dừng dịch vụ nền bắt đầu (phantomjs) trong gitlab-ci
Điều này đang chạy trên máy chủ gitlab/gitlab-ci tùy chỉnh, tôi hiện không sử dụng vùng chứa, tôi đoán điều đó sẽ đơn giản hóa điều đó.
tôi bắt đầu phantomjs như thế này:
- "timeout 300 phantomjs --ssl-protocol=any --ignore-ssl-errors=true vendor/jcalderonzumba/gastonjs/src/Client/main.js 8510 1024 768 2>&1 >> /tmp/gastonjs.log &"
Sau đó, tôi đang chạy thử nghiệm behat của tôi, và sau đó tôi dừng quá trình đó một lần nữa:
- "pkill -f 'src/Client/main.js' || true"
Vấn đề là khi một kiểm tra behat thất bại, sau đó nó không thực hiện các pkill và chạy thử nghiệm đang bị mắc kẹt chờ đợi trên phantomjs để kết thúc. Tôi đã thêm thời gian chờ 300 nhưng điều đó có nghĩa là tôi vẫn đang đợi 2 phút sau khi thất bại và cuối cùng nó sẽ dừng nó trong khi thử nghiệm vẫn chạy khi chúng đủ chậm.
Tôi chưa tìm thấy cách để chạy một số loại lệnh sau khi chạy/dọn dẹp cũng chạy trong trường hợp không thành công.
Có cách nào tốt hơn để thực hiện việc này không? Tôi có thể bắt đầu phantomjs theo cách mà gitlab-ci không quan tâm rằng nó vẫn đang chạy? nohup có thể?
Cảm ơn đã phản ứng bằng cách nào đó nhưng điều này không làm việc cho tôi, nó không bao giờ bắt đầu sau khi kịch bản đến khi quá trình phantomjs chạy. Tôi đã thử nohup, không thay đổi gì cả. Ngay sau khi tôi bắt đầu quá trình, cũng bằng cách thực hiện thủ công, nó tiếp tục và sau đó chạy các tập lệnh sau nhưng không chạy trước đó. – Berdir
bạn có thể bắt đầu dịch vụ nền với nohup không? –
chỉ sinh ra quy trình trong một chuỗi mới với '&' xem https: //gist.github.com/rufinus/9ee8f04fc1f9248eeb0c73ad5360a006 # file-gitlab-ci-yml-L7 cho một ví dụ – Rufinus