我想用 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
