2015-07-20 94 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

这是不是需要手工启动服务器有关系吗?我已经有独角兽自动启动了。 –