好吧,我正在回答我自己的問題,因爲我設定了一個賞金後才明白它!
我可以通過Process.pid
獲得當前運行過程的pid。然後,我可以做ps afx | grep mongrel
這給了我這樣的
pid port
| |
V V
10761 pts/1 S 0:20 | \_/usr/local/bin/ruby /path/to/mongrel_rails start -p 3000
10762 pts/1 S 0:18 | \_/usr/local/bin/ruby /path/to/mongrel_rails start -p 3001
10763 pts/1 S+ 0:23 | \_/usr/local/bin/ruby /path/to/mongrel_rails start -p 3002
結果,我可以接着用grep的PID,讀端口號進行匹配線,看看它是3000
所以,我的代碼是
if `ps afx | grep mongrel_rails`.split("\n").detect{|line| line =~ /^#{Process.pid}.+\-p\s3000/}
#this is a mongrel running on port 3000 - do the extra stuff
....
end
順便說一句,如果有人能告訴我如何直接取得運行的雜種的端口,而不會通過ps afx
和Process.pid
去我還是給你獎金:)
在初始化
謝謝@Alper - 對不起,我應該說有問題的應用程序正在運行** Rails 2.2.2 **。你的代碼對於我來說有'未初始化的常量Rails :: Server'的錯誤 - 我不認爲你知道Rails 2的等價物嗎? –
ENV ['RAILS_ENV']變量裏面什麼都沒有? –
這只是模式,例如「開發」 –