Configuring Supervisor for Daphne (Django Channels)










4















I have created a web application with Django Channels which I face problems with while trying to set up with Supervisor system.



To start with, the application locally works well.



Remotely (I use an AWS EC2 instance with Ubuntu Server 18.04 LTS), when run with a command daphne -b 0.0.0.0 -p 8000 mysite.asgi:application it also works well.



However, I cannot make it work with Supervisor. I follow instructions from the official Django Channels docs (https://channels.readthedocs.io/en/latest/deploying.html) and therefore I have:




  • nginx config file:



    upstream channels-backend 
    server localhost:8000;


    server
    server_name www.example.com;

    keepalive_timeout 5;
    client_max_body_size 1m;

    access_log /home/ubuntu/django_app/logs/nginx-access.log;
    error_log /home/ubuntu/django_app/logs/nginx-error.log;

    location /static/
    alias /home/ubuntu/django_app/mysite/staticfiles/;


    location /
    try_files $uri @proxy_to_app;


    location @proxy_to_app
    proxy_pass http://channels-backend;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


    server
    listen 80;
    server_name www.example.com;

    if ($host = www.example.com)
    return 301 https://$host$request_uri;
    # managed by Certbot

    return 404; # managed by Certbot




  • Supervisor config file:



    [fcgi-program:asgi]

    socket=tcp://localhost:8000

    directory=/home/ubuntu/django_app/mysite

    command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application

    numprocs=4

    process_name=asgi%(process_num)d

    autostart=true
    autorestart=true

    stdout_logfile=/home/ubuntu/django_app/logs/supervisor_log.log
    redirect_stderr=true


When set this way, the webpage does not work (504 Gateway Time-out). In the Supervisor log file I see:



2018-11-14 14:48:21,511 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne0.sock
2018-11-14 14:48:21,516 INFO HTTP/2 support enabled
2018-11-14 14:48:21,517 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,015 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,025 INFO Configuring endpoint unix:/run/daphne/daphne0.sock
2018-11-14 14:48:22,026 CRITICAL Listen failure: [Errno 2] No such file or directory: '1416' -> b'/run/daphne/daphne0.sock.lock'
2018-11-14 14:48:22,091 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne2.sock
2018-11-14 14:48:22,096 INFO HTTP/2 support enabled
2018-11-14 14:48:22,097 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,135 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne3.sock
2018-11-14 14:48:22,152 INFO HTTP/2 support enabled
2018-11-14 14:48:22,153 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,237 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,241 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,242 INFO Configuring endpoint unix:/run/daphne/daphne3.sock
2018-11-14 14:48:22,242 CRITICAL Listen failure: [Errno 2] No such file or directory: '1419' -> b'/run/daphne/daphne3.sock.lock'
2018-11-14 14:48:22,252 INFO Configuring endpoint unix:/run/daphne/daphne2.sock
2018-11-14 14:48:22,252 CRITICAL Listen failure: [Errno 2] No such file or directory: '1420' -> b'/run/daphne/daphne2.sock.lock'


etc.



Please note that in the Supervisor command the Daphne process is invoked in another way (with other set of parameters) than I run it before - instead of parameters for address and port, there are parameters for socket and file descriptor (about which I do not know much at all). I suspect that it is the reason of the encountered error.



Any help or suggestions will be highly appreciated.



The relevant packages versions:



channels==2.1.2
channels-redis==2.2.1
daphne==2.2.1
Django==2.1.2


EDIT:



When I create empty files for socket files (which are present in command for Daphne in the Supervisor config file), ie. /run/daphne/daphne0.sock, /run/daphne/daphne1.sock, etc., then the log file states the following:



2018-11-15 10:24:38,289 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne0.sock
2018-11-15 10:24:38,290 INFO HTTP/2 support enabled
2018-11-15 10:24:38,280 INFO Configuring endpoint fd:fileno=0
2018-11-15 10:24:38,458 INFO Listening on TCP address 127.0.0.1:8000
2018-11-15 10:24:38,475 INFO Configuring endpoint unix:/run/daphne/daphne0.sock
2018-11-15 10:24:38,476 CRITICAL Listen failure: Couldn't listen on any:b'/run/daphne/daphne0.sock': [Errno 98] Address already in use.


Question: should these files not be empty? What should they include?










share|improve this question
























  • Hi, I'm having the same issue. Was you able to fix?

    – Fabio
    Nov 22 '18 at 21:33
















4















I have created a web application with Django Channels which I face problems with while trying to set up with Supervisor system.



To start with, the application locally works well.



Remotely (I use an AWS EC2 instance with Ubuntu Server 18.04 LTS), when run with a command daphne -b 0.0.0.0 -p 8000 mysite.asgi:application it also works well.



However, I cannot make it work with Supervisor. I follow instructions from the official Django Channels docs (https://channels.readthedocs.io/en/latest/deploying.html) and therefore I have:




  • nginx config file:



    upstream channels-backend 
    server localhost:8000;


    server
    server_name www.example.com;

    keepalive_timeout 5;
    client_max_body_size 1m;

    access_log /home/ubuntu/django_app/logs/nginx-access.log;
    error_log /home/ubuntu/django_app/logs/nginx-error.log;

    location /static/
    alias /home/ubuntu/django_app/mysite/staticfiles/;


    location /
    try_files $uri @proxy_to_app;


    location @proxy_to_app
    proxy_pass http://channels-backend;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


    server
    listen 80;
    server_name www.example.com;

    if ($host = www.example.com)
    return 301 https://$host$request_uri;
    # managed by Certbot

    return 404; # managed by Certbot




  • Supervisor config file:



    [fcgi-program:asgi]

    socket=tcp://localhost:8000

    directory=/home/ubuntu/django_app/mysite

    command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application

    numprocs=4

    process_name=asgi%(process_num)d

    autostart=true
    autorestart=true

    stdout_logfile=/home/ubuntu/django_app/logs/supervisor_log.log
    redirect_stderr=true


When set this way, the webpage does not work (504 Gateway Time-out). In the Supervisor log file I see:



2018-11-14 14:48:21,511 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne0.sock
2018-11-14 14:48:21,516 INFO HTTP/2 support enabled
2018-11-14 14:48:21,517 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,015 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,025 INFO Configuring endpoint unix:/run/daphne/daphne0.sock
2018-11-14 14:48:22,026 CRITICAL Listen failure: [Errno 2] No such file or directory: '1416' -> b'/run/daphne/daphne0.sock.lock'
2018-11-14 14:48:22,091 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne2.sock
2018-11-14 14:48:22,096 INFO HTTP/2 support enabled
2018-11-14 14:48:22,097 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,135 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne3.sock
2018-11-14 14:48:22,152 INFO HTTP/2 support enabled
2018-11-14 14:48:22,153 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,237 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,241 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,242 INFO Configuring endpoint unix:/run/daphne/daphne3.sock
2018-11-14 14:48:22,242 CRITICAL Listen failure: [Errno 2] No such file or directory: '1419' -> b'/run/daphne/daphne3.sock.lock'
2018-11-14 14:48:22,252 INFO Configuring endpoint unix:/run/daphne/daphne2.sock
2018-11-14 14:48:22,252 CRITICAL Listen failure: [Errno 2] No such file or directory: '1420' -> b'/run/daphne/daphne2.sock.lock'


etc.



Please note that in the Supervisor command the Daphne process is invoked in another way (with other set of parameters) than I run it before - instead of parameters for address and port, there are parameters for socket and file descriptor (about which I do not know much at all). I suspect that it is the reason of the encountered error.



Any help or suggestions will be highly appreciated.



The relevant packages versions:



channels==2.1.2
channels-redis==2.2.1
daphne==2.2.1
Django==2.1.2


EDIT:



When I create empty files for socket files (which are present in command for Daphne in the Supervisor config file), ie. /run/daphne/daphne0.sock, /run/daphne/daphne1.sock, etc., then the log file states the following:



2018-11-15 10:24:38,289 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne0.sock
2018-11-15 10:24:38,290 INFO HTTP/2 support enabled
2018-11-15 10:24:38,280 INFO Configuring endpoint fd:fileno=0
2018-11-15 10:24:38,458 INFO Listening on TCP address 127.0.0.1:8000
2018-11-15 10:24:38,475 INFO Configuring endpoint unix:/run/daphne/daphne0.sock
2018-11-15 10:24:38,476 CRITICAL Listen failure: Couldn't listen on any:b'/run/daphne/daphne0.sock': [Errno 98] Address already in use.


Question: should these files not be empty? What should they include?










share|improve this question
























  • Hi, I'm having the same issue. Was you able to fix?

    – Fabio
    Nov 22 '18 at 21:33














4












4








4


3






I have created a web application with Django Channels which I face problems with while trying to set up with Supervisor system.



To start with, the application locally works well.



Remotely (I use an AWS EC2 instance with Ubuntu Server 18.04 LTS), when run with a command daphne -b 0.0.0.0 -p 8000 mysite.asgi:application it also works well.



However, I cannot make it work with Supervisor. I follow instructions from the official Django Channels docs (https://channels.readthedocs.io/en/latest/deploying.html) and therefore I have:




  • nginx config file:



    upstream channels-backend 
    server localhost:8000;


    server
    server_name www.example.com;

    keepalive_timeout 5;
    client_max_body_size 1m;

    access_log /home/ubuntu/django_app/logs/nginx-access.log;
    error_log /home/ubuntu/django_app/logs/nginx-error.log;

    location /static/
    alias /home/ubuntu/django_app/mysite/staticfiles/;


    location /
    try_files $uri @proxy_to_app;


    location @proxy_to_app
    proxy_pass http://channels-backend;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


    server
    listen 80;
    server_name www.example.com;

    if ($host = www.example.com)
    return 301 https://$host$request_uri;
    # managed by Certbot

    return 404; # managed by Certbot




  • Supervisor config file:



    [fcgi-program:asgi]

    socket=tcp://localhost:8000

    directory=/home/ubuntu/django_app/mysite

    command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application

    numprocs=4

    process_name=asgi%(process_num)d

    autostart=true
    autorestart=true

    stdout_logfile=/home/ubuntu/django_app/logs/supervisor_log.log
    redirect_stderr=true


When set this way, the webpage does not work (504 Gateway Time-out). In the Supervisor log file I see:



2018-11-14 14:48:21,511 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne0.sock
2018-11-14 14:48:21,516 INFO HTTP/2 support enabled
2018-11-14 14:48:21,517 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,015 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,025 INFO Configuring endpoint unix:/run/daphne/daphne0.sock
2018-11-14 14:48:22,026 CRITICAL Listen failure: [Errno 2] No such file or directory: '1416' -> b'/run/daphne/daphne0.sock.lock'
2018-11-14 14:48:22,091 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne2.sock
2018-11-14 14:48:22,096 INFO HTTP/2 support enabled
2018-11-14 14:48:22,097 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,135 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne3.sock
2018-11-14 14:48:22,152 INFO HTTP/2 support enabled
2018-11-14 14:48:22,153 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,237 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,241 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,242 INFO Configuring endpoint unix:/run/daphne/daphne3.sock
2018-11-14 14:48:22,242 CRITICAL Listen failure: [Errno 2] No such file or directory: '1419' -> b'/run/daphne/daphne3.sock.lock'
2018-11-14 14:48:22,252 INFO Configuring endpoint unix:/run/daphne/daphne2.sock
2018-11-14 14:48:22,252 CRITICAL Listen failure: [Errno 2] No such file or directory: '1420' -> b'/run/daphne/daphne2.sock.lock'


etc.



Please note that in the Supervisor command the Daphne process is invoked in another way (with other set of parameters) than I run it before - instead of parameters for address and port, there are parameters for socket and file descriptor (about which I do not know much at all). I suspect that it is the reason of the encountered error.



Any help or suggestions will be highly appreciated.



The relevant packages versions:



channels==2.1.2
channels-redis==2.2.1
daphne==2.2.1
Django==2.1.2


EDIT:



When I create empty files for socket files (which are present in command for Daphne in the Supervisor config file), ie. /run/daphne/daphne0.sock, /run/daphne/daphne1.sock, etc., then the log file states the following:



2018-11-15 10:24:38,289 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne0.sock
2018-11-15 10:24:38,290 INFO HTTP/2 support enabled
2018-11-15 10:24:38,280 INFO Configuring endpoint fd:fileno=0
2018-11-15 10:24:38,458 INFO Listening on TCP address 127.0.0.1:8000
2018-11-15 10:24:38,475 INFO Configuring endpoint unix:/run/daphne/daphne0.sock
2018-11-15 10:24:38,476 CRITICAL Listen failure: Couldn't listen on any:b'/run/daphne/daphne0.sock': [Errno 98] Address already in use.


Question: should these files not be empty? What should they include?










share|improve this question
















I have created a web application with Django Channels which I face problems with while trying to set up with Supervisor system.



To start with, the application locally works well.



Remotely (I use an AWS EC2 instance with Ubuntu Server 18.04 LTS), when run with a command daphne -b 0.0.0.0 -p 8000 mysite.asgi:application it also works well.



However, I cannot make it work with Supervisor. I follow instructions from the official Django Channels docs (https://channels.readthedocs.io/en/latest/deploying.html) and therefore I have:




  • nginx config file:



    upstream channels-backend 
    server localhost:8000;


    server
    server_name www.example.com;

    keepalive_timeout 5;
    client_max_body_size 1m;

    access_log /home/ubuntu/django_app/logs/nginx-access.log;
    error_log /home/ubuntu/django_app/logs/nginx-error.log;

    location /static/
    alias /home/ubuntu/django_app/mysite/staticfiles/;


    location /
    try_files $uri @proxy_to_app;


    location @proxy_to_app
    proxy_pass http://channels-backend;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


    server
    listen 80;
    server_name www.example.com;

    if ($host = www.example.com)
    return 301 https://$host$request_uri;
    # managed by Certbot

    return 404; # managed by Certbot




  • Supervisor config file:



    [fcgi-program:asgi]

    socket=tcp://localhost:8000

    directory=/home/ubuntu/django_app/mysite

    command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application

    numprocs=4

    process_name=asgi%(process_num)d

    autostart=true
    autorestart=true

    stdout_logfile=/home/ubuntu/django_app/logs/supervisor_log.log
    redirect_stderr=true


When set this way, the webpage does not work (504 Gateway Time-out). In the Supervisor log file I see:



2018-11-14 14:48:21,511 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne0.sock
2018-11-14 14:48:21,516 INFO HTTP/2 support enabled
2018-11-14 14:48:21,517 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,015 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,025 INFO Configuring endpoint unix:/run/daphne/daphne0.sock
2018-11-14 14:48:22,026 CRITICAL Listen failure: [Errno 2] No such file or directory: '1416' -> b'/run/daphne/daphne0.sock.lock'
2018-11-14 14:48:22,091 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne2.sock
2018-11-14 14:48:22,096 INFO HTTP/2 support enabled
2018-11-14 14:48:22,097 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,135 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne3.sock
2018-11-14 14:48:22,152 INFO HTTP/2 support enabled
2018-11-14 14:48:22,153 INFO Configuring endpoint fd:fileno=0
2018-11-14 14:48:22,237 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,241 INFO Listening on TCP address 127.0.0.1:8000
2018-11-14 14:48:22,242 INFO Configuring endpoint unix:/run/daphne/daphne3.sock
2018-11-14 14:48:22,242 CRITICAL Listen failure: [Errno 2] No such file or directory: '1419' -> b'/run/daphne/daphne3.sock.lock'
2018-11-14 14:48:22,252 INFO Configuring endpoint unix:/run/daphne/daphne2.sock
2018-11-14 14:48:22,252 CRITICAL Listen failure: [Errno 2] No such file or directory: '1420' -> b'/run/daphne/daphne2.sock.lock'


etc.



Please note that in the Supervisor command the Daphne process is invoked in another way (with other set of parameters) than I run it before - instead of parameters for address and port, there are parameters for socket and file descriptor (about which I do not know much at all). I suspect that it is the reason of the encountered error.



Any help or suggestions will be highly appreciated.



The relevant packages versions:



channels==2.1.2
channels-redis==2.2.1
daphne==2.2.1
Django==2.1.2


EDIT:



When I create empty files for socket files (which are present in command for Daphne in the Supervisor config file), ie. /run/daphne/daphne0.sock, /run/daphne/daphne1.sock, etc., then the log file states the following:



2018-11-15 10:24:38,289 INFO Starting server at fd:fileno=0, unix:/run/daphne/daphne0.sock
2018-11-15 10:24:38,290 INFO HTTP/2 support enabled
2018-11-15 10:24:38,280 INFO Configuring endpoint fd:fileno=0
2018-11-15 10:24:38,458 INFO Listening on TCP address 127.0.0.1:8000
2018-11-15 10:24:38,475 INFO Configuring endpoint unix:/run/daphne/daphne0.sock
2018-11-15 10:24:38,476 CRITICAL Listen failure: Couldn't listen on any:b'/run/daphne/daphne0.sock': [Errno 98] Address already in use.


Question: should these files not be empty? What should they include?







nginx production-environment supervisord django-channels daphne






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 15 '18 at 11:27







AndrzejD

















asked Nov 14 '18 at 16:36









AndrzejDAndrzejD

314




314












  • Hi, I'm having the same issue. Was you able to fix?

    – Fabio
    Nov 22 '18 at 21:33


















  • Hi, I'm having the same issue. Was you able to fix?

    – Fabio
    Nov 22 '18 at 21:33

















Hi, I'm having the same issue. Was you able to fix?

– Fabio
Nov 22 '18 at 21:33






Hi, I'm having the same issue. Was you able to fix?

– Fabio
Nov 22 '18 at 21:33













2 Answers
2






active

oldest

votes


















1














In the supervisor ASGI config file, in the following line



command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application



replace --fd 0 with --endpoint fd:fileno=0.



Issue: https://github.com/django/daphne/issues/234






share|improve this answer






























    0














    Fabio's answer, with replacing the file descriptor parameter for the endpoint parameter, presents a quick workaround for this problem (which appeared to be a bug in the Daphne code).



    However, the fix in Daphne repository was quickly committed so that the original instructions work well.



    As a side note (for people still getting critical listen failures which I wrote about in the original question), please be sure that the physical location for socket files (/run/daphne/ in my case) is accessible - I spent too much time just to discover that simply creating the daphne folder in /run catalog does the job (even though I run everything with sudo)... For precautionary measures one may consider redirecting the socket files to another folder, e.g. /tmp which does let creating a directory without sudo permission.






    share|improve this answer























    • I am still getting the same error as your question do you have idea

      – Midhun Mohan
      Feb 9 at 2:49











    • 2019-02-09 02:29:03,681 INFO HTTP/2 support enabled 2019-02-09 02:29:03,681 INFO Configuring endpoint fd:fileno=0 2019-02-09 02:29:03,715 CRITICAL Listen failure: [Errno 88] Socket operation on non-socket this is what am getting

      – Midhun Mohan
      Feb 9 at 2:52











    • all socket files are created in the run folder

      – Midhun Mohan
      Feb 9 at 2:55











    • i was able fix the issue

      – Midhun Mohan
      Feb 9 at 5:36











    • I create daphne folder in /run/, then everything work well.

      – herock
      Feb 12 at 5:57











    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53304883%2fconfiguring-supervisor-for-daphne-django-channels%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    In the supervisor ASGI config file, in the following line



    command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application



    replace --fd 0 with --endpoint fd:fileno=0.



    Issue: https://github.com/django/daphne/issues/234






    share|improve this answer



























      1














      In the supervisor ASGI config file, in the following line



      command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application



      replace --fd 0 with --endpoint fd:fileno=0.



      Issue: https://github.com/django/daphne/issues/234






      share|improve this answer

























        1












        1








        1







        In the supervisor ASGI config file, in the following line



        command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application



        replace --fd 0 with --endpoint fd:fileno=0.



        Issue: https://github.com/django/daphne/issues/234






        share|improve this answer













        In the supervisor ASGI config file, in the following line



        command=/home/ubuntu/django_app/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers mysite.asgi:application



        replace --fd 0 with --endpoint fd:fileno=0.



        Issue: https://github.com/django/daphne/issues/234







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 22 '18 at 22:19









        FabioFabio

        3051525




        3051525























            0














            Fabio's answer, with replacing the file descriptor parameter for the endpoint parameter, presents a quick workaround for this problem (which appeared to be a bug in the Daphne code).



            However, the fix in Daphne repository was quickly committed so that the original instructions work well.



            As a side note (for people still getting critical listen failures which I wrote about in the original question), please be sure that the physical location for socket files (/run/daphne/ in my case) is accessible - I spent too much time just to discover that simply creating the daphne folder in /run catalog does the job (even though I run everything with sudo)... For precautionary measures one may consider redirecting the socket files to another folder, e.g. /tmp which does let creating a directory without sudo permission.






            share|improve this answer























            • I am still getting the same error as your question do you have idea

              – Midhun Mohan
              Feb 9 at 2:49











            • 2019-02-09 02:29:03,681 INFO HTTP/2 support enabled 2019-02-09 02:29:03,681 INFO Configuring endpoint fd:fileno=0 2019-02-09 02:29:03,715 CRITICAL Listen failure: [Errno 88] Socket operation on non-socket this is what am getting

              – Midhun Mohan
              Feb 9 at 2:52











            • all socket files are created in the run folder

              – Midhun Mohan
              Feb 9 at 2:55











            • i was able fix the issue

              – Midhun Mohan
              Feb 9 at 5:36











            • I create daphne folder in /run/, then everything work well.

              – herock
              Feb 12 at 5:57
















            0














            Fabio's answer, with replacing the file descriptor parameter for the endpoint parameter, presents a quick workaround for this problem (which appeared to be a bug in the Daphne code).



            However, the fix in Daphne repository was quickly committed so that the original instructions work well.



            As a side note (for people still getting critical listen failures which I wrote about in the original question), please be sure that the physical location for socket files (/run/daphne/ in my case) is accessible - I spent too much time just to discover that simply creating the daphne folder in /run catalog does the job (even though I run everything with sudo)... For precautionary measures one may consider redirecting the socket files to another folder, e.g. /tmp which does let creating a directory without sudo permission.






            share|improve this answer























            • I am still getting the same error as your question do you have idea

              – Midhun Mohan
              Feb 9 at 2:49











            • 2019-02-09 02:29:03,681 INFO HTTP/2 support enabled 2019-02-09 02:29:03,681 INFO Configuring endpoint fd:fileno=0 2019-02-09 02:29:03,715 CRITICAL Listen failure: [Errno 88] Socket operation on non-socket this is what am getting

              – Midhun Mohan
              Feb 9 at 2:52











            • all socket files are created in the run folder

              – Midhun Mohan
              Feb 9 at 2:55











            • i was able fix the issue

              – Midhun Mohan
              Feb 9 at 5:36











            • I create daphne folder in /run/, then everything work well.

              – herock
              Feb 12 at 5:57














            0












            0








            0







            Fabio's answer, with replacing the file descriptor parameter for the endpoint parameter, presents a quick workaround for this problem (which appeared to be a bug in the Daphne code).



            However, the fix in Daphne repository was quickly committed so that the original instructions work well.



            As a side note (for people still getting critical listen failures which I wrote about in the original question), please be sure that the physical location for socket files (/run/daphne/ in my case) is accessible - I spent too much time just to discover that simply creating the daphne folder in /run catalog does the job (even though I run everything with sudo)... For precautionary measures one may consider redirecting the socket files to another folder, e.g. /tmp which does let creating a directory without sudo permission.






            share|improve this answer













            Fabio's answer, with replacing the file descriptor parameter for the endpoint parameter, presents a quick workaround for this problem (which appeared to be a bug in the Daphne code).



            However, the fix in Daphne repository was quickly committed so that the original instructions work well.



            As a side note (for people still getting critical listen failures which I wrote about in the original question), please be sure that the physical location for socket files (/run/daphne/ in my case) is accessible - I spent too much time just to discover that simply creating the daphne folder in /run catalog does the job (even though I run everything with sudo)... For precautionary measures one may consider redirecting the socket files to another folder, e.g. /tmp which does let creating a directory without sudo permission.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 28 '18 at 16:58









            AndrzejDAndrzejD

            314




            314












            • I am still getting the same error as your question do you have idea

              – Midhun Mohan
              Feb 9 at 2:49











            • 2019-02-09 02:29:03,681 INFO HTTP/2 support enabled 2019-02-09 02:29:03,681 INFO Configuring endpoint fd:fileno=0 2019-02-09 02:29:03,715 CRITICAL Listen failure: [Errno 88] Socket operation on non-socket this is what am getting

              – Midhun Mohan
              Feb 9 at 2:52











            • all socket files are created in the run folder

              – Midhun Mohan
              Feb 9 at 2:55











            • i was able fix the issue

              – Midhun Mohan
              Feb 9 at 5:36











            • I create daphne folder in /run/, then everything work well.

              – herock
              Feb 12 at 5:57


















            • I am still getting the same error as your question do you have idea

              – Midhun Mohan
              Feb 9 at 2:49











            • 2019-02-09 02:29:03,681 INFO HTTP/2 support enabled 2019-02-09 02:29:03,681 INFO Configuring endpoint fd:fileno=0 2019-02-09 02:29:03,715 CRITICAL Listen failure: [Errno 88] Socket operation on non-socket this is what am getting

              – Midhun Mohan
              Feb 9 at 2:52











            • all socket files are created in the run folder

              – Midhun Mohan
              Feb 9 at 2:55











            • i was able fix the issue

              – Midhun Mohan
              Feb 9 at 5:36











            • I create daphne folder in /run/, then everything work well.

              – herock
              Feb 12 at 5:57

















            I am still getting the same error as your question do you have idea

            – Midhun Mohan
            Feb 9 at 2:49





            I am still getting the same error as your question do you have idea

            – Midhun Mohan
            Feb 9 at 2:49













            2019-02-09 02:29:03,681 INFO HTTP/2 support enabled 2019-02-09 02:29:03,681 INFO Configuring endpoint fd:fileno=0 2019-02-09 02:29:03,715 CRITICAL Listen failure: [Errno 88] Socket operation on non-socket this is what am getting

            – Midhun Mohan
            Feb 9 at 2:52





            2019-02-09 02:29:03,681 INFO HTTP/2 support enabled 2019-02-09 02:29:03,681 INFO Configuring endpoint fd:fileno=0 2019-02-09 02:29:03,715 CRITICAL Listen failure: [Errno 88] Socket operation on non-socket this is what am getting

            – Midhun Mohan
            Feb 9 at 2:52













            all socket files are created in the run folder

            – Midhun Mohan
            Feb 9 at 2:55





            all socket files are created in the run folder

            – Midhun Mohan
            Feb 9 at 2:55













            i was able fix the issue

            – Midhun Mohan
            Feb 9 at 5:36





            i was able fix the issue

            – Midhun Mohan
            Feb 9 at 5:36













            I create daphne folder in /run/, then everything work well.

            – herock
            Feb 12 at 5:57






            I create daphne folder in /run/, then everything work well.

            – herock
            Feb 12 at 5:57


















            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53304883%2fconfiguring-supervisor-for-daphne-django-channels%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Use pre created SQLite database for Android project in kotlin

            Darth Vader #20

            Ondo