làm thế nào để khởi động lại chỉ một số quy trình bằng cách sử dụng supervisorctl?


107

Tôi đang chạy một vài quy trình sử dụng trình giám sát, có tên là process1, process2, ..., process8. Nếu tôi muốn khởi động lại quá trình {1-4}, làm cách nào để thực hiện việc đó với supervisorctl?

Câu trả lời:


177

giám sát viên hỗ trợ các nhóm quy trình . Bạn có thể nhóm các quy trình thành các nhóm được đặt tên và quản lý chúng chung.

[unix_http_server]
file=%(here)s/supervisor.sock

[supervisord]
logfile=supervisord.log
pidfile=supervisord.pid

[program:cat1]
command=cat

[program:cat2]
command=cat

[program:cat3]
command=cat

[group:foo]
programs=cat1,cat3

[supervisorctl]
serverurl=unix://%(here)s/supervisor.sock

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

Lệnh supervisorctl có thể được gọi với tên nhóm:

supervisorctl restart foo:

cũng như với nhiều tên quy trình:

supervisorctl restart foo:cat1 cat2

47
Thật ngạc nhiên khi phát hiện ra rằng dấu hai chấm cần phải được thêm vào khi phát lệnh cho một nhóm quy trình. Cảm ơn bạn.
mafrosis,

4
Đã đồng ý. Tôi nghĩ supervisorctl restart foo:*làm cho những gì đang xảy ra rõ ràng hơn.
Tom,

Vì vậy, để trả lời trực tiếp câu hỏi của OP, bạn không thể trực tiếp khởi động lại một quy trình cụ thể. Bạn chỉ có thể khởi động lại các nhóm, yêu cầu thẻ nhóm?
Cerin

@Cerin Từ thử nghiệm của riêng tôi, tôi đã đưa ra kết luận chính xác như vậy. Nói sơ qua, tôi có xu hướng thấy một nhóm ở cuối tệp .conf chứa tất cả các quy trình. Theo quan sát lặp đi lặp lại, điều này không có ý nghĩa gì. Bây giờ nó hoàn toàn có ý nghĩa :)
AlanSE

Bạn đã làm nên ngày của tôi :)
sumit

3

supervisorctlchấp nhận nhiều quy trình trên dòng lệnh, bạn có thể tận dụng lợi thế của việc mở rộng dấu ngoặc nhọn (ví dụ: trong Bash) để kiểm soát nhiều quy trình:

supervisorctl restart process{1..4}

được mở rộng bởi vỏ thành

supervisorctl restart process1 process2 process3 process4

như thể bạn đã gõ nó một cách rõ ràng.

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.