fork 了 ruby-china 的源码后,要使用的话,得启动 mongod/redis-server/thin,借助 foreman 可以简化这个配置,并且还有更多强大的功能,比如 export 到 init 或者 bluepill,upstart.
Procfile
redis: redis-server
worker: bundle exec rake environment resque:work QUEUE=*
db: mongod
web: bundle exec thin start -p $PORT
在我电脑上的运行效果
~/fisheye/ruby-china:master$ foreman start
19:43:48 redis.1 | started with pid 25261
19:43:48 worker.1 | started with pid 25262
19:43:48 db.1 | started with pid 25263
19:43:48 web.1 | started with pid 25264
........
谢谢分享,现在的 web 项目慢慢都变得复杂了,都不在仅仅是一个独立 Rails 应用了。
foreman 在开发环境作为 process 的 manager 工具非常便利,我已经逐渐把自己本地的各个项目切换到用 Procfile+foreman 来管理。
关于生产环境,ruby-china 的生产环境目标服务器是 Linux,Linux 或者其他 OS 都有自己的 process manager,upstair, system-v, 或者 OSX 的 launched,只要能用系统提供的就应该尽量用,如 mongodb 和 redis,不能直接用系统的就可以考虑 foreman。
#2 楼 @geekontheway OSX 的 Launchd ( http://launchd.macosforge.org/ ) 我觉得很一般,只是能用,使用 plist(其实是 xml) 来配置 app process,不过如果你用 homebrew 的话,通常你用 brew 安装好一个 backend 的应用,都会给出具体的配置信息信息,引导你完成 launchd 的配置。
开发环境下用 foreman 还是不错,我用来启动 resque_worker resque_scheduler resque_web sphinx_searchd 这些,redis postgresql 都是系统启动的
#9 楼 @Saito 这个好像很久之前就提过了:-) http://ruby-china.org/topics/35#reply33 好像 foreman 就是手写的 start.sh,不过是 ruby 写的。比自己写的专业了一点点..
#17 楼 @Saito http://stackoverflow.com/questions/4474920/trying-to-add-rvmrc-to-ignore-its-not-working
rvm 的 doc 里把 check rvmrc into source control 当作 best practice,而 Rails 却给 ignore 了。 https://rvm.beginrescueend.com/rvm/best-practices/ https://github.com/rails/rails/pull/194
PS. 楼主对不起哇 跑题了...........