Đã chạy vài tiến trình chiến lược nền, gặp chút thiệt thòi:


Rõ ràng tiến trình đang chạy, dữ liệu cũng mới, nhưng PM2 lại hiển thị đã dừng.
Nếu tin tưởng PM2 để trực tiếp khởi động lại, ngược lại sẽ làm gián đoạn tiến trình vẫn đang làm việc.
Sau đó mới hiểu rõ: PM2 / launchd / tệp pid đều chỉ là lớp giám sát ghi nhận trạng thái — nó có ghi nhận tiến trình hay không, và tiến trình có thực sự đang chạy là hai chuyện khác nhau.
Thật sự muốn biết thì phải xem tệp sức khỏe do tiến trình tự tạo ra — lần cập nhật gần nhất là cách đây vài phút + số tiến trình khớp đúng = còn sống.
Viết một script kiểm tra định kỳ, mỗi tiến trình báo cáo 4 giá trị cùng lúc:
- Tiến trình có còn không (dùng ps kiểm tra)
- PM2 / launchd có ghi nhận không
- Tệp sức khỏe cập nhật cách đây bao lâu
- Ba thứ có khớp không
Chỉ cần tệp sức khỏe còn mới, thì không coi là đã chết.
Bài học kỹ thuật: Đánh giá "hệ thống còn sống hay không", đừng dựa vào lớp giám sát bạn tạo ra, hãy xem thứ do hệ thống tự tạo ra còn mới hay không.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
Thêm một bình luận
Thêm một bình luận
Không có bình luận
  • Ghim