系統信息芹菜工人的命令行,但不是作爲守護工作,在virtualenv中
的Ubuntu LTS 12.04
的Django 1.5.5
的Python 2.7.3
芹菜3.1 .9
我在一個流浪的虛擬機上運行(用木偶),並試圖設置芹菜運行t他是芹菜文檔here中描述的守護程序,以及django描述的芹菜設置here。我使用位於
/home/vagrant/virtualenvs/myproj
該項目實際項目文件位於
/srv/myproj
一個virtualenv中我已經能夠開始工作人員並沒有問題節拍調度設在當/ srv/myproj目錄中使用命令行語句。
~/virtualenvs/myproj/bin/celery -A app beat
~/virtualenvs/myproj/bin/celery worker -A app
兩個節拍和工人開始沒有問題,計劃任務傳遞給工人並執行。當我嘗試將它們作爲後臺進程運行時,會出現問題。我使用/etc/init.d/boot.d中的celery github repo上的腳本,並使用位於/ etc /默認在我celeryd以下配置設置和celerybeat文件
CELERY_BIN="/home/vagrant/virtualenvs/myproj/bin/celery"
CELERYD_CHDIR="/srv/myproj"
試圖爲使用sudo運行的服務
sudo service celeryd start
sudo service celerybeat start
導致引發一個錯誤信息,我相信這是因爲它是使用位於usr/lib中,而不是在virtualenv中的蟒蛇蟒蛇。拋出的錯誤是一個無法導入的名稱(該包存在於virtualenv中,但不是全局的,因此我的假設)。
我也注意到在運行工人,因爲它規定,勞動者應運行作爲非特權用戶守護進程,而且你應該開始工作者和跳動使用多或 --detach命令。通過這種方式,我可以啓動worker(不打),但所有的.log和.pid文件都是在我的當前目錄中創建的,而不是在/ etc/default/celeryd配置文件中指定的位置。
有沒有人有一個解決方案讓芹菜在virtualenv工作?我覺得我真的很接近,並且忽略了一些簡單的配置。
請看看[這個鏈接](https://stackoverflow.com/questions/41821614/celery-daemon-production-local-config-file-without-django) – Manish