セロリ (supervisord によってデーモン化された) で実行する定期的なタスクがいくつかありますが、スーパーバイザーのプロセス用にセットアップしたユーザーのホーム ディレクトリにディレクトリを作成しようとした後、「アクセス許可が拒否されました」というエラーが発生しました。os.environ
実行中の celery タスクで dict を見た後、 USER
var が 'root' に設定されており、celery の Supervisord 設定で設定したユーザーではないことに気付きました。
これは私/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
何が原因でしょうか? どんな助けでも大歓迎です!