我有一些使用 celery 运行的定期任务(由 supervisord 守护),但是在尝试为用户创建主目录中的目录后,我为主管进程设置了“权限被拒绝”错误。在查看正在os.environ
运行的 celery 任务中的 dict 后,我注意到USER
var 设置为“root”,而不是我在我的 supervisord 配置中为 celery 设置的用户。
这就是我的/usr/local/etc/supervisord.conf
样子:
[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
这可能是什么原因造成的?任何帮助将不胜感激!