2012-05-18 53 views
3

我有一個本地開發的Rails應用程序。這是非常簡單的,沒有數據庫,但只有一個控制器訪問Facebook數據並呈現它們。順便說一句,使用寶石RestGraph'工頭開始'卡住

在我將這個應用程序推送到heroku之前,我用工頭開始測試它。因爲我用的WEBrick之前,我需要安裝「薄」的寶石,並創建一個Procfile其內容爲:

web: bundle exec thin start -R config.ru -e $RACK_ENV -p $PORT 

似乎還需要一個「.ENV」文件,其內容爲:

RACK_ENV=development 
PORT=3000 

的「 config.ru」文件是由軌道生成,其內容爲:

require ::File.expand_path('../config/environment', __FILE__) 
run Myapp::Application 

現在我進入了‘工頭開始’,但我得到的是一個行:

15:33:18 web.1  | started with pid 27143 

服務器將無法啓動。如果我強制終止它,錯誤是:

/usr/local/foreman/lib/foreman/engine.rb:141: [BUG] rb_sys_fail() - errno == 0 

這不是很有幫助。

+0

是你的應用程序叫做領班還是你用[The Foreman](http://theforeman.org/)rails應用程序來控制Puppet? – Augusto

+1

這個應用程序只是'Myapp',並且沒有'foreman start'用於在部署在heroku上之前測試Rails應用程序,如此處所述https://devcenter.heroku.com/articles/rails3#webserver – yongtw123

+0

這將是'工頭' - https://github.com/ddollar/foreman –

回答

0

這似乎有點過於複雜。通過觀察幾個應用程序我有我有我的procfile如下:

bundle exec rails server thin -p $PORT 

我也沒有.env文件在這些情況下。

有一兩件事值得一提的是,工頭會忽略你的大部分時間通過該端口,它喜歡在一個端口範圍坐在高於5000

1

這可能是因爲而不是被「套牢」,您日誌只是被緩衝:foreman only shows line with 「started wit pid #」 and nothing else

我解決了這個問題,通過增加

$stdout.sync = true 

到config.ru

然後你可能會得到更多的幫助來自Foreman的反饋。

+0

這對我有用。當我在卡住的領班上按ctrl-C時,我得到了剩下的線條吐出來了。 –