unix: ///var/run/supervisor.sock không có tệp đó


6

Tôi đang chạy Giám sát trên máy chủ Ubuntu 14.04 của mình và mọi thứ đều hoạt động tốt. Tôi triển khai bằng cách sử dụng git đẩy và khi triển khai, tôi cũng cần khởi động lại máy chủ ứng dụng của mình ( gunicorn ) mà tôi có thể sử dụng supervisorctl.

un my supervisord.conf, gunicorn được định nghĩa như sau:

[program:gunicorn]
command=/home/imb/imb/venv/bin/gunicorn --worker-class eventlet -b 127.0.0.1:5000 -w 1 app:app
directory=/home/imb/imb
autostart=true
autorestart=true
stdout_logfile=/tmp/gunicorn.log
redirect_stderr=true
stopsignal=QUIT

và tôi kích hoạt supervisorctlnhư thế này:

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

Tôi bắt đầu giám sát bằng

sudo supervisord -c /home/imb/imb/supervisord.conf

Theo như tôi hiểu thì bây giờ tôi có thể khởi động lại gunicorn bằng lệnh supervisorctl restart gunicorn, nhưng khi tôi làm điều đó tôi nhận được

$ supervisorctl restart gunicorn
unix:///var/run/supervisor.sock no such file

Tôi đã kiểm tra và tập tin /var/run/supervisor.sockthực sự không tồn tại, mặc dù tôi chắc chắn giám sát viên thực tế đang chạy:

$ ps -A | grep supervisor
27211 ?        00:00:00 supervisord

Có ai biết tại sao /var/run/supervisor.socktập tin không được tạo, mặc dù người giám sát rõ ràng đang chạy không? Tất cả các lời khuyên đều được chào đón!


Bạn đã thấy bài này? stackoverflow.com/questions/10716159/ Từ Bạn đã thử bất kỳ oslutions nào của nó chưa? Họ có làm việc không? Nếu họ không, làm thế nào để họ thất bại?
MariusMatutiae

Câu trả lời:


5

Được rồi, sau khi loay hoay thêm một số tôi đã tìm thấy những gì tôi đã làm sai.

Hóa ra các dòng supervisorctlbên dưới, chỉ cho biết supervisorctlnơi nó có thể tìm thấy tệp ổ cắm.

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

Hơn nữa ở trên trong tệp có hai dòng khác xác định nơi tệp thực sự được tạo:

[unix_http_server]
file=/tmp/supervisor.sock

Như bạn có thể thấy rằng đã tạo tệp socket trong /tmp/khi supervisorctlcố đọc nó từ đó /var/run/. Tôi đã thay đổi dòng cuối cùng file=/var/run/supervisor.sockvà bây giờ nó hoạt động rất tốt.

Tôi hy vọng câu trả lời này có thể giúp người khác giải quyết vấn đề tương tự.

Ngoài ra, bạn có thể kiểm tra liên kết được cung cấp bởi @MariusMatutiae trong các nhận xét: https://stackoverflow.com/questions/10716159/nginx-and-supervisor-setup-in-ub Ubuntu


2
Tôi thấy rằng trang mà tôi đề xuất có chứa giải pháp phù hợp với bạn, stackoverflow.com/a/28469044/2796243 . Tôi vui mừng khi thấy tôi có thể giúp đỡ, chúc mừng.
MariusMatutiae

@MariusMatutiae - Vâng thực sự, tôi có thể đã không cho bạn sự công nhận mà bạn xứng đáng. Cảm ơn bạn rất nhiều! Lưu ý rằng tôi vẫn vui lòng cho bạn 50 điểm thưởng. Chỉ cần viết câu trả lời và tôi sẽ thưởng cho bạn .. :-)
kramer65

Cảm ơn, rất tốt về bạn, nhưng tôi không thực sự tìm ra giải pháp. Chỉ là trang ở trên có chứa một số giải pháp khác nhau, chỉ một trong số đó (vui vẻ) áp dụng cho bạn, nhưng nó có thể hữu ích cho những người khác đọc bài đăng này để biết rằng các giải pháp khác có thể có sẵn, nếu cần. Đó là tất cả. Chúc mừng.
MariusMatutiae

Tôi phải đối mặt với một vấn đề "buồn cười" khác. Không sử dụng thư mục tmp cho tệp ổ cắm vì nó được làm sạch tự động và tệp ổ cắm sẽ bị xóa cho đến khi người giám sát tiếp theo khởi động lại.
StalkAlex

3

Đối với người dùng có cùng mục nhập cho cả hai

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock

&

[unix_http_server]
file=/tmp/supervisor.sock

làm theo các bước dưới đây để khắc phục sự cố -

  1. Xóa tệp .sock khỏi / tmp
  2. Chạy lệnh 'giám sát'. Điều này sẽ tạo lại tập tin sock.
  3. Chạy 'giám sát -i' để kiểm tra trạng thái của các dịch vụ.

Hy vọng điều này sẽ giúp bạn!


0

Sau quá nhiều vật lộn với vấn đề này, với mọi người bảo tôi chỉ enablehoặc restartkhông hoạt động. Cuối cùng tôi đã tìm ra giải pháp cho tôi:

  • Trước hết, xác nhận rằng bạn có tệp giám sát chính. Tại đây: /etc/supervisor/supervisor.conf
  • Nếu bạn ở trong trường hợp của tôi, bạn cũng có một .conftệp cụ thể của dự án tại đây:/etc/supervisor/conf.d/project.conf

Bằng cách nào đó supervisorctlđã hoạt động tốt nhưng điều kỳ lạ là làm service supervisor restarthỏng mọi thứ và bạn gặp lỗi của OP.

Giải pháp sau đó là:

  1. Đổi tên project.confthànhproject.conf.tmp
  2. Sau đó service restart supervisor(sau những gì supervisorctlhoạt động trở lại)
  3. Bạn đổi tên tập tin conf dự án của bạn thành project.conf
  4. supervisorctl reread, supervisorctl update,supervisorctl restart all

-1

Nâng cấp nó lên MacOS Sierra 10.12.5 .

Tôi đã đối mặt với cùng một vấn đề và mọi thứ cũng đúng trong tập tin cấu hình. Sau đó tôi nhận ra rằng tôi đã chuyển sang MacOS Sierra 10.12.3 mới nhất và sau đó nó không hoạt động. Nó đã hoạt động trên phiên bản cũ hơn nhưng không phải ở phiên bản MacOS cụ thể này. Sau đó, tôi đã nâng cấp nó lên MacOS Sierra 10.12.5 và mọi thứ dường như đang hoạt động tốt.

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.