少し背景について。私はSupervisorを使用してdjango-celeryプロセスを監視しています。virutalenvを設定してから、celerydプロセスを開始できるようにする必要があります。
私が現在それをしている方法は、supervisor.conf
私が持っているファイルの中でです
[program:celery]
command = /srv/worker.sh
stdout_logfile = /srv/supervisor.log
stderr_logfile = /srv/supervisor.log
それからworker.sh
私は持っています
/bin/su - username -c "source /srv/virtualenvs/bin/activate; python /srv/manage.py celeryd
これはうまくいきます。問題は、私supervisorctl stop celery
が上司と一緒にいるとき、それが労働者を殺さないということです。彼らはまだ残っています。スーパーバイザー内でvirtualenvをアクティブ化できれば、シェルスクリプトにドロップするよりもすべてがうまく機能すると思います。