我正在使用Capistrano部署一个Django应用程序(它使用Nginx作为Web服务器),使用我在http://akashxav.com/2009/07/11/getting-django-running-on-nginx-and-fastcgi-on-prgmr/找到的指令(我今天早些时候必须查看缓存版本)并且想知道那里的最后一个命令,是
python manage.py runfcgi host=127.0.0.1 port=8081 --settings=settings
我从很高的层面了解到,这告诉应用程序我们要运行一些FastCGI二进制实例来提供这个应用程序。
我想知道的是,由于缺乏更好的词,如何处理“重置”这个问题的最佳方式。对于那些不知道的人,Capistrano通过创建“发布”目录然后为最新版本提供符号链接来部署内容。
因为我可以执行部署后任务(我已经使用CakePHP应用程序来完成这项操作,例如为应用程序中的缓存目录正确设置目录权限),我想知道如何关闭命令创建的现有进程以上并开始新的。
我希望我有意义。
答案 0 :(得分:1)
有一个section in the django docs about this
基本上使用pidfile选项来管理。然后编写一个小的shell脚本来使用该pid来杀死现有的cgi进程(如果它存在,然后再启动它。)
像这样的东西
#!/bin/bash
if [ -f "pidfile" ]; then
kill `cat -- pidfile`
rm -f -- pidfile
fi
exec python manage.py runfcgi host=127.0.0.1 port=8081 pidfile=pidfile --settings=settings
NB 不推荐使用FastCGI支持,将在Django 1.9中删除