tôi có một kịch bản điểm vào trong một container Docker trông giống như sau:bẫy tín hiệu từ "dừng Docker" trong bash
#!/bin/bash
echo starting up
function shut_down() {
echo shutting down
pid=$(ps -e | grep myapp | awk '{print $1}')
kill -SIGTERM $pid
exit
}
trap "shut_down" SIGKILL SIGTERM SIGHUP SIGINT EXIT
/opt/myapp
tôi không thể tìm ra cách để bẫy các tín hiệu được gửi bằng chạy docker stop
trên vùng chứa. Khi chạy một cách tương tác, một ctrl+c
sẽ kích hoạt nó như mong đợi, nhưng một lệnh docker stop
chỉ chờ đợi cho thời gian chờ 10 giây, và thoát ra mà không bao giờ bước vào shut_down
chức năng
Làm thế nào tôi có thể bẫy tín hiệu gửi bởi docker stop
trong bash để làm một số dọn dẹp?
đặc biệt, '/ opt/myapp' được chạy trong forground và ngăn chặn cái bẫy từ thực hiện. Giải pháp là cập nhật dòng đó để đọc như: '/ opt/webapp &; wait' –
Lý do DV: Các câu trả lời chỉ là các liên kết được coi là câu trả lời nghèo nàn. Điều gì sẽ xảy ra nếu liên kết bị hỏng? –
@ Nick-Humrich WOW thực sự!?! –