là mới bắt đầu và giám sát được sử dụng cho cùng một điều?


13

Tôi có một số quy trình dựa trên jvm mà tôi cần đảm bảo bắt đầu bất cứ khi nào máy chủ của tôi được khởi động lại, và nếu nó dừng lại do một lỗi không mong muốn, v.v.

Tôi đang chạy Ubuntu 12.04 trong trường hợp có vấn đề.

Tôi đã thấy các kịch bản mới bắt đầu và tôi hơi nghiêng về phía đó, nhưng tôi muốn hiểu sự khác biệt đang diễn ra với thứ gì đó như mới nổi hoặc giám sát.

Chúng được sử dụng cho cùng một mục đích hay có sự khác biệt về chức năng?

Câu trả lời:


12

Sự khác biệt là upstart là một sự thay thế init trong khi giám sát là a Process Control System. Giải thích này được đưa ra trên trang web giám sát :

Nó chia sẻ một số mục tiêu tương tự của các chương trình như launchd, daemontools và runit. Không giống như một số chương trình này, nó không có nghĩa là được chạy thay thế cho init như là process process 1 1. Thay vào đó, nó được sử dụng để kiểm soát các quá trình liên quan đến dự án hoặc khách hàng và có nghĩa là bắt đầu như bất kỳ chương trình nào khác khi khởi động.

Điều này có nghĩa là chính giám sát viên sẽ được bắt đầu bằng cách khởi động, thông qua tệp công việc mới bắt đầu hoặc tập lệnh sysV init. Cá nhân, tôi đã chọn sử dụng trình quản lý quy trình thay vì khởi tạo đơn giản vì những lý do sau:

  1. Dịch vụ không đúng daemonize
  2. Dịch vụ này được biết là cần phải được theo dõi và khởi động lại

Một ví dụ về chương trình không được tạo da đúng cách là khi nó không đóng thiết bị xuất chuẩn và thiết bị xuất chuẩn và tiếp tục ghi dữ liệu vào các vị trí đó. Giám sát có thể xử lý việc đăng nhập của đầu ra đó.


Tôi thấy, không chắc là tôi hoàn toàn hiểu, nhưng tôi nghĩ rằng mới bắt đầu cũng có thể khởi động lại quá trình nếu nó thất bại.
Blankman

@Blankman Tôi đoán thậm chí còn ít lý do hơn với các hệ thống init hiện đại
jordanm

Tôi lưu ý rằng giải pháp thích hợp cho dịch vụ không đúng cách sẽ là sửa lỗi với dịch vụ đã nói khiến dịch vụ đó không đúng. Tuy nhiên, tôi sẽ cho rằng một cái gì đó như giám sát sẽ hữu ích cho # 2.
Shadur

1
@shadur Tôi không đồng ý rằng đó là giải pháp tốt nhất. Quá trình có thể không thuộc sở hữu của bạn, vì vậy bạn không thể sửa nó. Ngay cả khi bạn có thể sửa nó, cho dù bạn có sửa bao nhiêu lỗi đi chăng nữa, bạn cũng không bao giờ có thể biết rằng không có gì rình rập hơn, và nhiều năm sau, quy trình của bạn sẽ chết một lần nữa, trong sản xuất, do một số tình huống chưa bao giờ bị lộ trước đây, chẳng hạn như một điều kiện mạng hoặc cơ sở dữ liệu bất thường. Bạn có muốn trang web của bạn vẫn ngoại tuyến, gây khó chịu cho người dùng, khiến bạn mất tiền? Không. Bạn cần một công cụ để khởi động lại dịch vụ. Giai đoạn = Stage.
Jonathan Hartley
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.