不能 运行 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/run
的 chmod
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
我想 运行 我的 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
.
您可以使用命令
更改/var/run
的 chmod
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