顯示具有 supervisor 標籤的文章。 顯示所有文章
顯示具有 supervisor 標籤的文章。 顯示所有文章

2013年10月30日

supervisord uwsgi 設定

結果還是回來用 supervisord ,因為在 CentOS 上使用 upstart 有點麻煩,必須要自行定義指令權限

使用 supervisord 一勞永逸,config / settings / process 共同管理,還有簡單的 web 介面

轉換最主要要記得 uwsgi 要改成非 daemon 模式 ,讓 supervisord 來管理

否則 ps aux 會出現很多 uwsgi process

log 的部份可以讓 uwsgi 自行處理,因為網路上有人遇到 supervisord CPU 標高的情形

也可以 uwsgi UDP logging

ex: log 到 1717 port

./uwsgi -s :3031 -w simple_app --logto 192.168.0.100:1717 sudo vi supervisord.conf
[program:uwsgi] environment=PYTHONPATH=/home/project/project:/home/project/project/venv/lib/python2.7/site-packages,DJANGO_SETTINGS_MODULE=project.config.staging directory=/home/project/project command=/home/project/project/venv/bin/uwsgi --chdir /home/project/project --ini /home/project/project/uwsgi.ini autostart=true autorestart=true ;the following may be useless since uwsgi will handle the log stdout_logfile = /var/log/uwsgi/project.log redirect_stderr = true



2012年7月2日

將celery做成daemon在背景執行

Ubuntu 12.04
celery 2.5.5
celery-with-redis 2.5

以最簡單的單機執行為範例
參考官方文件
首先是執行檔 參考generic-init.d/celeryd
sudo curl https://raw.github.com/ask/celery/master/contrib/generic-init.d/celeryd > celeryd sudo chmod +x celeryd sudo chown root:root celeryd sudo mv celeryd /etc/init.d/celeryd
設定檔
vi celeryd
# Name of nodes to start # here we have a single node CELERYD_NODES="w1" # or we could have three nodes: #CELERYD_NODES="w1 w2 w3" # Where to chdir at start. CELERYD_CHDIR="/path/to/my/project/" # Extra arguments to celeryd CELERYD_OPTS="--time-limit=300 --concurrency=8" # Name of the celery config module. CELERY_CONFIG_MODULE="celeryconfig" # %n will be replaced with the nodename. CELERYD_LOG_FILE="/var/log/celery/%n.log" CELERYD_PID_FILE="/var/run/celery/%n.pid" # Workers should run as an unprivileged user. CELERYD_USER="celery" CELERYD_GROUP="celery" sudo chown root:root celeryd sudo mv celeryd /etc/default/celeryd
建立log和pid directory
sudo mkdir /var/log/celery sudo mkdir /var/run/celery
設定開機執行,然後執行
sudo update-rc.d celeryd defaults sudo service celeryd start
順帶ㄧ提,如果要移除開機執行的話
sudo update-rc.d -f celeryd remove service --status-all
也可以使用supervisor來做管理,使用方法是在supervisord.conf中帶進celeryd.conf
所有要被supervisor管理的process都使用類似的方法