无法使用pidfile选项运行Django的FastCGI

时间:2016-03-09 07:32:39

标签: python django fastcgi

我想用FastCGI运行我的Django sitw。

我可以使用以下命令成功启动TCP服务器。

python manage.py runfcgi method=prefork host=127.0.0.1 \
       port=3000 maxrequests=100 daemonize=true

但是,如果我在命令中添加了pidfile选项,则会失败。

python manage.py runfcgi method=prefork host=127.0.0.1 \
       port=3000 maxrequests=100 daemonize=true pidfile=/var/run/django.pid

我没有使用第二个命令打印出异常,但TCP服务器未启动。

Django版本:1.6.11

我可能知道造成这种失败的原因是什么?

我猜失败可能是由许可问题引起的。我正在使用标准用户运行命令。但是,如果我使用sudo,则无法解决问题。

感谢Andriy的回答,我已经解决了这个问题。由于权限,TCP服务器未启动。但是,只需使用sudo执行命令就不起作用。

此外,我确实尝试使用django.pid作为pidfile名称。但是,似乎脚本无法正确解析相对路径。将pidfile更改为当前用户有权使用绝对路径写入的文件夹后,它可以正常工作!

1 个答案:

答案 0 :(得分:1)

最有可能的是,你有{strong> no permisson 在/var/run/django.pid内创建pidfile。

您可以使用命令

更改/var/run的{​​{3}}
sudo chmod -R 666 /var/run
例如,

或将 pidfile 放在您具有写入权限的文件夹下。

python manage.py runfcgi method=prefork host=127.0.0.1 \
   port=3000 maxrequests=100 daemonize=true pidfile=$HOME/django.pid