【问题标题】:Why can't I start my gunicorn server? "Connection in use"为什么我无法启动我的 gunicorn 服务器? “使用中的连接”
【发布时间】:2014-08-10 16:30:25
【问题描述】:

知道为什么我的 gunicorn 服务器无法启动吗?

jeffy@originaldjangster:~$ sudo /home/jeffy/django_files/django_test_venv/bin/gunicorn -c /home/jeffy/django_files/django_test_venv/gunicorn_config.py django_test.wsgi
 Connection in use: ('127.0.0.1', 8001)
 Retrying in 1 second.
 Connection in use: ('127.0.0.1', 8001)
 Retrying in 1 second.
 Connection in use: ('127.0.0.1', 8001)
 Retrying in 1 second.
 Connection in use: ('127.0.0.1', 8001)
 Retrying in 1 second.
 Connection in use: ('127.0.0.1', 8001)
 Retrying in 1 second.
 Can't connect to ('127.0.0.1', 8001)
jeffy@originaldjangster:~$

nginx 监听http://104.131.200.120/,并传递给 gunicorn,后者监听 127.0.0.1。我在 Ubuntu 14 上。

我已经列出了所有进程,看看 gunicorn 是否已经在运行:

jeffy@originaldjangster:~$ ps -a
   PID TTY          TIME CMD
  7653 pts/1    00:00:00 ps
 jeffy@originaldjangster:~$ ps
   PID TTY          TIME CMD
  7249 pts/1    00:00:00 bash
  7654 pts/1    00:00:00 ps
 jeffy@originaldjangster:~$ ps -A
   PID TTY          TIME CMD
     1 ?        00:00:02 init
     2 ?        00:00:00 kthreadd
     3 ?        00:00:00 ksoftirqd/0
     5 ?        00:00:00 kworker/0:0H
     6 ?        00:00:00 kworker/u2:0
     7 ?        00:00:00 rcu_sched
     8 ?        00:00:00 rcu_bh
     9 ?        00:00:00 migration/0
    10 ?        00:00:00 watchdog/0
    11 ?        00:00:00 khelper
    12 ?        00:00:00 kdevtmpfs
    13 ?        00:00:00 netns
    14 ?        00:00:00 writeback
    15 ?        00:00:00 kintegrityd
    16 ?        00:00:00 bioset
    17 ?        00:00:00 kworker/u3:0
    18 ?        00:00:00 kblockd
    19 ?        00:00:00 ata_sff
    20 ?        00:00:00 khubd
    21 ?        00:00:00 md
    22 ?        00:00:00 devfreq_wq
    23 ?        00:00:08 kworker/0:1
    24 ?        00:00:00 khungtaskd
    25 ?        00:00:00 kswapd0
    26 ?        00:00:00 ksmd
    27 ?        00:00:00 fsnotify_mark
    28 ?        00:00:00 ecryptfs-kthrea
    29 ?        00:00:00 crypto
    41 ?        00:00:00 kthrotld
    44 ?        00:00:00 scsi_eh_0
    45 ?        00:00:00 scsi_eh_1
    66 ?        00:00:00 deferwq
    67 ?        00:00:00 charger_manager
   120 ?        00:00:01 jbd2/vda-8
   121 ?        00:00:00 ext4-rsv-conver
   271 ?        00:00:00 upstart-udev-br
   275 ?        00:00:00 systemd-udevd
   322 ?        00:00:00 dbus-daemon
   349 ?        00:00:00 kpsmoused
   351 ?        00:00:00 kworker/0:2
   356 ?        00:00:00 systemd-logind
   358 ?        00:00:00 rsyslogd
   387 ?        00:00:00 kvm-irqfd-clean
   624 ?        00:00:00 upstart-file-br
   704 ?        00:00:00 upstart-socket-
   758 tty4     00:00:00 getty
   761 tty5     00:00:00 getty
   767 tty2     00:00:00 getty
   768 tty3     00:00:00 getty
   770 tty6     00:00:00 getty
   794 ?        00:00:00 sshd
   800 ?        00:00:00 acpid
   802 ?        00:00:00 cron
   804 ?        00:00:00 atd
   853 ?        00:00:01 postgres
   855 ?        00:00:00 postgres
   856 ?        00:00:01 postgres
   857 ?        00:00:01 postgres
   858 ?        00:00:02 postgres
   859 ?        00:00:02 postgres
   903 ?        00:00:17 supervisord
   961 tty1     00:00:00 getty
   982 ?        00:00:00 kauditd
  1266 ?        00:00:07 kworker/u2:1
  3027 ?        00:00:00 kworker/u3:1
  3230 ?        00:00:00 sudo
  3231 ?        00:00:01 gunicorn
  7014 ?        00:00:00 gunicorn
  7115 ?        00:00:00 sshd
  7192 ?        00:00:00 sshd
  7193 ?        00:00:00 sftp-server
  7200 ?        00:00:00 sshd
  7248 ?        00:00:00 sshd
  7249 pts/1    00:00:00 bash
  7610 ?        00:00:00 nginx
  7613 ?        00:00:00 nginx
  7614 ?        00:00:00 nginx
  7615 ?        00:00:00 nginx
  7616 ?        00:00:00 nginx
  7649 ?        00:00:00 sshd
  7650 ?        00:00:00 sshd
 7655 pts/1    00:00:00 ps

这是两条独角兽线:

  3231 ?        00:00:01 gunicorn
  7014 ?        00:00:00 gunicorn

我试图杀死这两个进程,但是当使用 fg 3231 将它们带到前台时,它会显示“没有这样的工作”。

有人建议我试试netstat -aWn --programs | grep 80。这是结果,我不明白

jeffy@originaldjangster:~$ sudo netstat -aWn --programs | grep 80
 tcp        0      0 127.0.0.1:8001          0.0.0.0:*               LISTEN      3231/python3.4
 unix  2      [ ACC ]     STREAM     LISTENING     8911     800/acpid           /var/run/acpid.socket
 unix  2      [ ]         DGRAM                    8908     800/acpid

任何想法是什么导致了这个“正在使用的连接”错误?谢谢。

【问题讨论】:

  • 感谢“netstat -aWn --programs | grep 80” - 救了我!

标签: gunicorn ubuntu-14.04


【解决方案1】:

原来我只需要sudo kill 3231sudo kill 7014。我错误地认为他们首先需要被带到前台。在我使用大写 A 选项 (ps -A) 之前无法看到这些过程这一事实误导了我,它们在某种程度上很特别。

当我在我妻子之前睡觉时,服务器 正在运行(在前台)。她睡前关掉了电脑。

Ubuntu 和 gunicorn 新手。你能告诉我吗?

【讨论】:

  • 当我使用ps -A 时,列表中没有gunicorn。但我遇到了同样的错误。有什么想法吗?
  • 对我来说效果很好 - 不小心关闭了我的 heroku local web 正在运行的窗口,但这显然没有关闭 gunicorn;这成功了,我又开始制作我的网页了。谢谢!
【解决方案2】:

在本地开发环境中(重新)启动 Gunicorn 之前,我已经习惯了运行 killall gunicorn

【讨论】:

    【解决方案3】:

    对于在端口上没有运行任何东西要杀死的任何人,如果 app.run() 在 gunicorn 正在运行的文件中,那么它将在端口上运行两次并继续尝试重试连接。

    就我而言,我正在运行 $ gunicorn run:app ,其中 run.py 有: from app import app app.run(debug=True)

    在里面。当我注释掉 app.run 时,它起作用了。

    【讨论】:

    • 这节省了我的时间!
    【解决方案4】:

    重新启动计算机对我有帮助

    • ps -A 的列表中没有 gunicorn,所以我不知道kill 要做什么
    • 我也没有从netstat -aWn --programs | grep 80 那里得到任何明显的信息

    【讨论】:

    • appengine 标准环境,运行时 python37 中的相同问题。现在我们该如何解决这个问题
    【解决方案5】:

    我找到了我的解决方案here

    ps ax|grep gunicorn
    >>> 932 pts/0    S      0:01 /home/someuser/flaskdir/.venv/bin/python3 /home/someuser/flaskdir/.venv/bin/gunicorn -w 3 flaskapp:app
    
    kill -9 932
    

    【讨论】:

      【解决方案6】:

      我也遇到了同样的问题... 不要尝试从 su 运行 gunicorn。 换个用户再试试吧

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-25
        • 2019-05-17
        • 2011-10-11
        • 2018-10-27
        • 2021-05-11
        • 2021-09-18
        • 2014-04-28
        相关资源
        最近更新 更多