2011-10-26 49 views
6

Tôi đã cài đặt supervisord trên Ubuntu 10.04 và nó chạy một quá trình Java liên tục và phải hồi phục (nạp lại) quy trình khi nó chết hoặc hỏng.Giám sát không bắt đầu quá trình bị giết

On tôi htop tôi gửi SIGKILL, SIGTERM, SIGHUP, tín hiệu SIGSEGV với quá trình Java và xem /etc/logs/supervisord.log tập tin và nó nói.

08:09:46,182 INFO success: myprogram entered RUNNING state,[...] 
08:38:10,043 INFO exited: myprogram (exit status 0; expected) 

Tại 08:38 Tôi giết quá trình bằng SIGSEGV. Làm thế nào đến nó được thoát với mã 0 và tại sao không supervisord khởi động lại nó ở tất cả?

Tất cả tôi supervisord.conf về chương trình cụ thể này là như sau:

[program:play-9000] 
command=play run /var/www/myprogram/ --%%prod 
stderr_logfile = /var/log/supervisord/myprogram-stderr.log 
stdout_logfile = /var/log/supervisord/myprogram-stdout.log 

Process hoạt động thực sự tốt khi tôi khởi động supervisord, tuy nhiên không được chữa lành.

Bằng cách nào, mọi ý tưởng làm thế nào để bắt đầu giám sát như một dịch vụ để nó tự động khởi chạy khi toàn bộ hệ thống khởi động lại?

Trả lời

11

Thử đặt autorestart=true. Theo mặc định, tự động khởi động được đặt thành "không mong muốn" có nghĩa là nó sẽ chỉ khởi động lại một quá trình nếu nó tồn tại với một mã thoát không mong muốn. Theo mặc định, mã thoát 0 được mong đợi.

http://supervisord.org/configuration.html#program-x-section-settings

Bạn có thể sử dụng chương trình chkconfig để đảm bảo rằng người giám sát bắt đầu từ ngày khởi động lại.

$ sudo apt-get install chkconfig 
$ chkconfig -l supervisor 
supervisor    0:off 1:off 2:on 3:on 4:on 5:on 6:off 

Bạn có thể thấy rằng nó được bật cho runlevel 2-5 theo mặc định khi tôi cài đặt.

$ man 7 runlevel 

để biết thêm thông tin về các cấp chạy.

+0

Khá tuyệt vời! Tôi đang tìm thiết lập 'autorestart' này. Tôi đã hy vọng nó sẽ là 'true' theo mặc định và sau đó tôi bị lạc trong tài liệu. BTW Tôi nghĩ rằng 'chkconfig' yêu cầu một quá trình là một dịch vụ, tuy nhiên' supervisord' không phải là một dịch vụ, do đó lệnh 'chkconfig -l' không hoạt động trên tôi và nói' giám sát: dịch vụ không được nhận ra'. Bạn nghĩ gì về điều đó? –

+1

Bạn đã cài đặt giám sát như thế nào? Nếu bạn sử dụng apt-get, sau đó nó được cài đặt như một dịch vụ, ít nhất là cho Ubuntu 10.04. –

+0

Đó là ngày 10.04 và tôi nghĩ rằng tôi đã cài đặt nó bằng cách sử dụng 'easy_install'. cảm ơn vì đã chú ý điều đó. –

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