Một trong những vấn đề, tôi phải đối mặt với giám sát là khi tôi có một lệnh mà lần lượt sinh ra một quá trình khác, giám sát là không thể giết nó.giám sát dừng quy trình con
Ví dụ tôi có một quá trình java mà khi chạy bình thường giống như
$ zkServer.sh start-foreground
$ ps -eaf | grep zk
user 30404 28280 0 09:21 pts/2 00:00:00 bash zkServer.sh start-foreground
user 30413 30404 76 09:21 pts/2 00:00:10 java -Dzookeeper.something..something
Các tập tin cấu hình supervisord trông giống như:
[program:zookeeper]
command=zkServer.sh start-foreground
autorestart=true
stopsignal=KILL
Những loại của các quá trình trong đó có nhiều Childs không tốt xử lý bởi người giám sát khi nói đến việc ngăn chặn họ từ supervisorctl
. Vì vậy, khi tôi chạy điều này từ người giám sát và cố gắng để ngăn chặn nó từ supervisorctl, chỉ có quá trình cấp cao nhất bị giết nhưng không phải là quá trình java thực tế.
Đó là sự hiểu biết của tôi rằng việc sử dụng ['systemd'] (http://en.wikipedia.org/wiki/Systemd)' init'-replacement của ['cgroups'] (http: //en.wikipedia. org/wiki/Cgroups) cho phép theo dõi các quy trình con một cách đáng tin cậy. Nó có thể phù hợp với nhu cầu của bạn. – sarnold
eh stackoverflow đang thay đổi 'supervisord' thành 'supervised' một lần nữa! – FUD