不能 运行 Django 的带有 pidfile 选项的 FastCGI

Cannot run Django's FastCGI with pidfile option

我想 运行 我的 Django 与 FastCGI 同步。

我可以通过以下命令成功启动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 名称。但是,脚本似乎没有正确解析相对路径。将pid文件改成当前用户有绝对路径写入权限的文件夹后,成功了!

很可能,您 无权/var/run/django.pid.

中创建 pidfile

您可以使用命令

更改 /var/runchmod
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