многопроцессная работа Дафни с супервизором, получение [Errno 88] работы с сокетом на не сокете - PullRequest
0 голосов
/ 18 февраля 2020
Каналы

daphne и Django отлично работают в командной строке или в отдельном процессе. Но когда я запускаю его с супервизором, возникает ошибка.

2020-02-18 12:40:35,995 CRITICAL Listen failure: [Errno 88] Socket operation on non-socket

Мой файл конфигурации

[program:asgi]

socket=tcp://localhost:9000

directory=/root/test/test/

command=daphne -u /run/daphne/daphne%(process_num)d.sock --endpoint fd:fileno=0 --access-log - --proxy-headers test.asgi:application

# Number of processes to startup, roughly the number of CPUs you have
numprocs=2

# Give each process a unique name so they can be told apart
process_name=asgi%(process_num)d

# Automatically start and recover processes
autostart=true
autorestart=true

# Choose where you want your log to go
stdout_logfile=/root/test/test/script/asgi.log
redirect_stderr=true

[supervisord]
[supervisorctl]

Есть идеи? Спасибо!

1 Ответ

0 голосов
/ 26 апреля 2020

Похоже, что была ошибка с Python или Twisted, который не мог привязаться к дескриптору файла 0, на который ссылается здесь: https://github.com/django/daphne/issues/263

Попробуйте связать сокет с другим fd, скажем 10 примерно так: daphne -u /run/daphne/daphne%(process_num)d.sock --fd 10 --access-log - --proxy-headers test.asgi:application

Если это не сработает, попробуйте проверить, есть ли у вас права на чтение и запись для самой папки / run / daphne /

...