Skip to main content
 首页 » 编程设计

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

2025年05月04日30jiqing9006

我想用 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 作为 pid 文件名。但是,脚本似乎没有正确解析相对路径。将 pid 文件更改为当前用户有权使用绝对路径写入的文件夹后,它可以工作!

请您参考如下方法:

很可能,您没有权限在/var/run/django.pid中创建pid文件。

您可以更改 chmod /var/run,带命令

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