知道为什么我的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
将它们带到前台时,例如,它显示"no such job"。
有人建议我试试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
你知道是什么导致了这个"连接在使用中"错误吗?谢谢。
原来我只需要sudo kill 3231
和sudo kill 7014
。我错误地认为他们首先需要被带到前台。直到我使用大写A选项(ps -A
)才看到这些过程,这一事实误导了我,使我误以为它们是特殊的。
服务器正在运行(在前台)时,我比我妻子先睡觉。她睡觉前把电脑关掉了。
Ubuntu和gunicorn新手。你能看出来吗?
在本地开发环境中启动Gunicorn之前,我已经习惯了运行killall gunicorn
。
对于那些在端口上没有要杀死的东西的人来说,如果app.run()
在gunicorn正在运行的文件中,那么它将在端口上运行两次并继续尝试重试连接。
在我的例子中,我正在运行$ gunicorn run:app,其中run.py有:from app import app
app.run(debug=True)
。当我注释掉app.run时,它工作了。
我找到解决办法了。
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
这对我有用:
sudo fuser -k 8000/tcp
重新启动电脑对我有帮助
- 我在
ps -A
列表中没有gunicorn,所以我不知道kill
- 我也没有得到任何明显的
netstat -aWn --programs | grep 80
我也遇到过同样的问题…不要尝试从su运行gunicorn。请更改用户并重试