2011-09-15 41 views
10

Tôi có một daemon chạy qua tập lệnh init.d/service thông thường.Dịch vụ dừng xe và dừng lại ở đâu?

Tôi có tính năng chạy đơn để đảm bảo các daemon này được khởi động lại nếu chúng gặp sự cố.

Tôi có một yêu cầu 'ngừng dịch vụ' nên dừng deamon, và vì nó đã được dừng lại một cách rõ ràng, không phải là một vụ tai nạn, monit không nên khởi động lại nó. Làm thế nào tôi có thể đạt được điều này với monit?

Tôi có thể có lệnh dừng của lệnh dịch vụ() thường gọi là 'monit unmonitor' nhưng điều này có vẻ như hình tròn và sai.

Cảm ơn, Dave

Trả lời

23

Tôi nghĩ rằng bạn nên sử dụng monit stop foo thay vì service foo stop. Bằng cách đó, Monit biết rằng dịch vụ không bị lỗi - và sẽ không khởi động lại.

+1

Điều này phải được chấp nhận làm câu trả lời. – brupm

1

Mô hình là: Monit chạy dưới dạng dịch vụ bởi init.d và do đó được kiểm soát (stop/start/restart) bởi init.d. (Những người khác, xin vui lòng cho tôi nếu tôi sai). Các ứng dụng yêu cầu giám sát được xử lý bằng monit.

Do đó, các ứng dụng như vậy chỉ nên được kiểm soát tức là dừng/bắt đầu/khởi động lại thông qua đơn vị. monit

2

Có một param MODE cho rằng:

Monit hỗ trợ ba chế độ giám sát cho mỗi dịch vụ: tích cực, thụ động và bằng tay.

Cú pháp:

THỨC Trong chế độ hoạt động (mặc định), Monit sẽ ủng hộ chủ động giám sát dịch vụ và trong trường hợp của các vấn đề nâng cao cảnh báo và/hoặc khởi động lại dịch vụ.

Ở chế độ thụ động, Monit sẽ theo dõi thụ động dịch vụ và sẽ cảnh báo, nhưng sẽ không cố khắc phục sự cố bằng cách thực hiện bắt đầu, dừng hoặc khởi động lại.

Trong chế độ bằng tay, Monit sẽ vào chế độ hoạt động chỉ khi một dịch vụ được bắt đầu qua Monit

Từ đây: https://mmonit.com/monit/documentation/monit.html#SERVICE-MONITORING-MODE

Bằng cách này nếu bạn quản lý các dịch vụ qua runit hoặc mới nổi và chỉ muốn sử dụng monit cho cảnh báo và trang tổng quan bạn chỉ cần đặt cho tất cả các dịch vụ như vậy mode thành passive.

Ví dụ:

check process heka with pidfile /etc/sv/myservice/supervise/pid 
    start program = "/usr/bin/sv start myservice" 
    stop program = "/usr/bin/sv stop myservice" 
    mode passive 

Nếu bạn cần phải kích hoạt/vô hiệu hóa mà trực tuyến nhưng không vĩnh viễn - vui lòng tham khảo câu trả lời của người khác, họ cũng tốt.

Các vấn đề liên quan