2012-01-27 17 views
7

tengo algunas tareas periódicas que ejecuto con apio (daemonized por supervisord), pero después de tratar de crear un directorio en el directorio de inicio para el usuario configuro para el proceso supervisor obtuve un error de "permiso denegado". Después de mirar el os.environ dict en una tarea de apio en marcha, noté que la var USER está establecida en "raíz" y no el usuario que configuré en mi configuración de supervisión para el apio.usuario incorrecto para supervisor aprondado

Esto es lo que mi /usr/local/etc/supervisord.conf parece:

[unix_http_server] 
file=/tmp/supervisor.sock 
chmod=0777 

[supervisord] 
logfile=/var/log/supervisord.log 
pidfile=/var/run/supervisord.pid 

[rpcinterface:supervisor] 
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 

[supervisorctl] 
serverurl=unix:///tmp/supervisor.sock 

[program:celery] 
command=/home/<USER>/.virtualenvs/sync/bin/celeryd --beat --loglevel=INFO 
environment=PYTHONPATH=/home/<USER>/apps/sync 
directory=/home/<USER>/apps/sync 
user=<USER> 
numprocs=1 
stdout_logfile=/var/log/celeryd.log 
stderr_logfile=/var/log/celeryd.log 
autostart=true 
autorestart=true 
startsecs=10 
stopwaitsecs = 30 

¿Cuál podría ser la causa de esto? ¡Cualquier ayuda sería muy apreciada!

Respuesta

9

Creo que esto se debe al hecho de que no estableció las variables de entorno HOME y USER. Esto es necesario cuando se usa la opción "usuario =" si su subproceso depende de los que se están configurando.

después de la catalogación supervisord en Subprocess Environment:

Sin cáscara es ejecutado por supervisord cuando se ejecuta un subproceso, por lo que las variables de entorno como USER, PATH, HOME, SHELL, LOGNAME, etc., no se les cambia sus incumplimientos o de otra manera reasignados

Así que tal vez probar:

environment=USER=<USER>,HOME=/home/<USER>,PYTHONPATH=/home/<USER>/apps/sync 
Cuestiones relacionadas