部署Django时自动终止fastcgi进程

2 投票
2 回答
1352 浏览
提问于 2025-04-15 18:04

几天前一切都很顺利。但从今天开始,当我运行fastcgi时,系统会自动杀掉这个进程。最糟糕的是,我不知道为什么,也不知道是哪个进程杀掉了fastcgi。

让我给你一些详细信息。

我们使用nginx来为另一个django应用提供静态文件,这个应用监听80端口。(这是用于生产环境的)

而我们使用lighttpd/fastcgi来运行另外两个django应用,它们分别监听8090和8091端口。(这些是用于开发测试的)

我运行的命令是:

python manage.py runfcgi host=127.0.0.1 port=8090

还有

python manage.py runfcgi host=127.0.0.1 port=8091

在我运行其中一个命令后,我执行了ps -ef|grep "python",可以看到fastcgi的进程,但几秒钟后,它们就消失了。

ps命令的输出是:

root      2685     1  0  2009 ?        00:00:27 /usr/bin/python -tt /usr/sbin/yum-updatesd
root      2827     1  0 03:49 ?        00:00:00 python manage.py runfcgi host=127.0.0.1 port=8090
root      2828  2827  0 03:49 ?        00:00:00 python manage.py runfcgi host=127.0.0.1 port=8090

然后fastcgi就被杀掉了,我们的网站也瘫痪了。

那么问题可能出在哪里呢?我该怎么找出原因呢?

谢谢。

2 个回答

0

你可以用命令'lsof -w -n -i tcp:8090',或者'fuser -n tcp 8090',再或者'netstat -anp|grep :8090[[:blank:]]'来查看哪个程序在使用8090这个端口。这些命令会告诉你程序的ID。如果没有可以用来关闭这个服务的脚本(因为TCP/8090通常是代理服务),你可以通过程序的ID来强制结束它,命令是'kill -9 pidnumber',其中pidnumber就是你找到的程序ID。

0

检查你的日志文件!

你可以在 runfcgi 命令中添加 outlogerrlog 选项,这样可以把错误信息和正常输出记录到一个文件里。具体可以查看 python manage.py help runfcgi

撰写回答