Как запустить задачу граблей с помощью выскочки

VIM 'ftplugins' там точно с этой целью.

http://vimdoc.sourceforge.net/htmldoc/usr_43.html#filetype-plugin

7
задан 5 November 2011 в 19:56
3 ответа

Вот как я это делаю .. это также добавляется в rvm

start on startup
stop on starting rcS

chdir /data/pusher/current
env RAILS_ENV=production
script
  /usr/local/bin/rvm-shell '1.9.2@app' -c 'JOBS_PER_FORK=25 RAILS_ENV=production QUEUE=app_production bundle exec rake --trace resque:work >> /data/app/current/log/app-worker.production.log 2>&1'
end script

Edit: вот как я это делаю для работы под другим пользователем .. chdir, похоже, не заслуживает уважения. ... так что это своего рода хакерство

start on runlevel [2345]
stop on starting rcS

chdir /data/app/current
env RAILS_ENV=production
script
        sudo -u user -s -- "cd /data/app/current; export RAILS_ENV=production; /usr/local/bin/rvm-shell '1.9.2-p180@app' -c 'QUEUE=app_production bundle exec rake resque:work >> /data/app/current/log/app-worker.production.log 2>&1'"
end script

Вам в значительной степени нужно перейти в правильный каталог и установить RAILS_ENV в команде sudo

5
ответ дан 2 December 2019 в 23:36

Вы можете посмотреть Foreman: http://ddollar.github.com/foreman/ , который имеет возможность экспортировать в выскочку и рекомендуется для управления восстановлением работники в ряде сообщений, включая этот: http://michaelvanrooijen.com/articles/2011/06/08-managing-and-monitoring-your-ruby-application-with-foreman-and-upstart/

2
ответ дан 2 December 2019 в 23:36

The way that the RVM manual, in the "integration" section, recommends for "Using RVM and Ruby-based services that start via init.d or upstart" is to use RVM aliases and wrappers.

I had a situation where I had to monitor a bluepill process. This process is a daemon so a process that forks 2 times. Starting it with the rvm-shell command added a third fork... Which caused Upstart to not be able to track the process PID (it can track processes max only till the second fork - when given the expect daemon stanza).

I solved this in the following way:

  1. First I created an RVM alias for my environment:

    rvm alias create my_app ruby-2.0.0-p247@my _app

  2. Затем я использовал следующую конфигурацию выскочки для своей работы:

` # /etc/init/bluepill_my-app.conf

description "my_app Bluepill"

start on runlevel [2]
stop on runlevel [016]

setuid my-app
setgid my-app

expect daemon
respawn

env USER=my-app
env HOME=/var/www/my-app/
env RAILS_ENV=my-app
env BLUEPILL_BASE_DIR=/tmp/bluepill_my-app

chdir /var/www/my-app/current/

exec /var/www/my-app/.rvm/wrappers/my-app/bundle exec bluepill --no-privileged load  /var/www/my-app/current/config/deploy/monitoring/my-app.pill >> /tmp/upstart.log 2>&1

`

Bundler должен быть установлен в данном gemset, на который указывает псевдоним RVM.

Вызов сценария оболочки bundler не вызывает никаких форков, как это делает команда rvm-shell .

Альтернативой может быть установка драгоценного камня bluepill в используемый набор гемов, создание для него сценария-оболочки и использование он напрямую без пакета exec - как и предлагает руководство по RVM - но его использование через bunlder позволяет файлам bluepill .pill использовать любую библиотеку, используемую в my-app (например, ] setingslogic и т. д.)

Это немного не по теме, но я думаю, что это хороший пример того, как сделать это лучше. Надеюсь, это поможет.

1
ответ дан 2 December 2019 в 23:36

Теги

Похожие вопросы