部署Django时自动终止fastcgi进程
几天前一切都很顺利。但从今天开始,当我运行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 命令中添加 outlog 和 errlog 选项,这样可以把错误信息和正常输出记录到一个文件里。具体可以查看 python manage.py help runfcgi
。