2015-07-20 117 views
0

我目前正在Ubuntu上使用Unicorn在Rails服務器上開發Digital Ocean實例。我已經完成了一切,除了一件事。每當Unicorn開始時運行命令

有一個我正在使用的稱爲延遲作業的gem,它需要作爲守護進程啓動,以便在服務器重新啓動時正常運行。問題是,它似乎像寶石有非常許多不同的啓動方式,其中許多不支持我的當前版本。所以,我認爲不是通過搜索堆不合適的文檔,而是使用我熟悉的shell命令啓動它。

我沒有使用Capistrano這樣的東西 - 那麼在Unicorn開始時運行命令行腳本的最佳方式是什麼?我必須跑

cd /home/rails/ 
RAILS_ENV=production bin/delayed_job start 

謝謝。

回答

0

使用Foreman寶石。

這樣,您可以通過執行foreman start輕鬆啓動應用程序。您將需要一個名爲Procfile的配置文件。

這是我的Procfile的樣本。在這裏,我使用它來運行Unicorn,MailCatcher和Sidekiq。

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb 
mailcatcher: ruby -rbundler/setup -e "Bundler.clean_exec('mailcatcher --foreground --ip=0.0.0.0')" 
worker: bundle exec sidekiq -C ./config/sidekiq.yml 

在你的情況,這將是這樣的:

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb 
worker: bundle exec rake jobs:work 

參考:https://devcenter.heroku.com/articles/delayed-job

+0

這是不是需要手工啓動服務器有關係嗎?我已經有獨角獸自動啓動了。 –