2012-06-27 15 views
7

Empower modunda uWSGI ile Django/Nginx/uWSGI çalıştıran bir sunucum var ve bunun için hata günlüğü (imparator seviye günlüğüne değil, vassal düzeyindeki hata günlüğü) her yeni bir yeni çıktığında sürekli bir izin hatası veriyor. işçi, şöyle:uWSGI Sunucu günlüğü… dosya okumak için izin reddedildi ... hangi dosya?

Salı 26 Haziran 19:34:55 2012-2 (yeni pid: 9334) respawned uWSGI işçisi okuma için

açma hatası dosya: İzin

Sorun yalanladı nedir, hangi dosyanın açıldığını sorun; Belli ki, günlük dosyasına değil, ona baktığımdan ve konuya yazmadan yazıyor. Öğrenmenin bir yolu var mı? Ubuntu 12.04 üzerinde Upstart üzerinden uWSGI 1.0.3-debian apt-get sürümünü çalıştırıyorum. Site başarıyla çalışıyor, bir bellek sızıntısı gibi görünüyor ... bu yüzden günlük dosyasına bakıyorum. Tüm/opt/dizin izinlerini uwsgiuser kullanıcısını içerecek şekilde değiştirmeyi denedim, boşuna. Bir TCP soketi kullanıyorum, bu yüzden izinler orada bir sorun olmamalı. Bu önbellek mi? Bu kendi izinleri var mı? Öyleyse nerede?

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 

Benim Vassal ini dosyası:

[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

Bu, muhtemelen ServerFault üzerinde yararlı bir yanıt almanın daha olasıdır. – Amber

cevap

8

gerçek cevabı için Bu soru bu Ubuntu'ya özgü hata gibi görünüyor:

https://bugs.launchpad.net/ubuntu/+source/libjpeg-turbo/+bug/1031718

Sen sonradan görme yapılandırma dosyası içine çizgileri

setuid uwsgiuser 
setgid uwsgiuser 

koyarak ve uwsgi yapılandırmasından uid ve gid ayarları silerek sorunu çalışabilirsiniz.

+2

Bu tamamen işe yaradı; çok teşekkür ederim. Hata beni deli ediyordu. – bkev

+0

Yükseltme yapılandırması dosyası nedir? –

+0

@uszywieloryba [Upstart] (http://upstart.ubuntu.com) Ubuntu’nun başlangıç ​​değiştirmesidir. İşleri,/etc/init 'deki dosyalara (diğer yerler arasında) göre çalıştırır. – alastair

3

Sen strace süreç denemek ve hata mesajı neyin tetiklediği görebiliyordu gibi bir şey:

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

İlgili konular