我有一个服务器在emperor模式下运行带有uWSGI的Django / Nginx / uWSGI,并且它的错误日志(vassal级别的错误日志,而不是皇帝级日志)每次生成一个连续的权限错误新工人,像这样:
Tue Jun 26 19:34:55 2012 - 重生的uWSGI工作者2(新pid:9334)
打开文件进行阅读时出错:权限被拒绝
问题是,我不知道打开时有什么文件;显然,它不是日志文件,因为我正在查看它并且它正在写入没有问题。有什么方法可以找到?我在Ubuntu 12.04上通过Upstart运行uWSGI 1.0.3-debian的apt-get版本。该网站正在成功运行,除了看起来像是内存泄漏......因此我查看了日志文件。我已尝试更改整个/ opt /目录的权限以包含uwsgiuser用户,但无济于事。我正在使用TCP套接字,因此权限不应成为问题。它是缓存吗?这有自己的权限吗?如果是这样,在哪里?
My Upstart conf file
description "uWSGI" start on runlevel [2345] stop on runlevel [06] respawn
env UWSGI=/usr/bin/uwsgi env LOGTO=/var/log/uwsgi/emperor.log
exec $UWSGI \
--master \
--emperor /etc/uwsgi/vassals \
--die-on-term \
--auto-procname \
--no-orphans \
--logto $LOGTO \
--logdate
My Vassal ini档案:
[uwsgi]
# Variables
base = /opt/env/mysiteenv
# Generic Config
uid = uwsgiuser
gid = uwsgiuser
socket = 127.0.0.1:5050
master = true
processes = 2
reload-on-as = 128
harakiri = 60
harakiri-verbose = true
auto-procname = true
plugins = http,python
cache = 2000
home = %(base)
pythonpath = %(base)/mysite
module = wsgi
logto = /opt/log/mysite/error.log
logdate = true
答案 0 :(得分:8)
这个问题的实际答案似乎是这个特定于Ubuntu的错误:
https://bugs.launchpad.net/ubuntu/+source/libjpeg-turbo/+bug/1031718
您可以通过添加行来解决问题
setuid uwsgiuser
setgid uwsgiuser
进入您的upstart配置文件,并从您的uwsgi配置中删除uid
和gid
设置。
答案 1 :(得分:3)
您可以尝试strace
进程并查看触发错误消息的内容,例如:
UWSGI=/usr/bin/uwsgi LOGTO=/var/log/uwsgi/emperor.log strace -f -o strace.log -etrace=open,write $UWSGI
--master --emperor /etc/uwsgi/vassals --die-on-term --auto-procname --no-orphans --logto $LOGTO --logdate