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?
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:
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
supervisorctl restart foo:*
làm cho những gì đang xảy ra rõ ràng hơn.
Vì supervisorctl
chấ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.