# Switched to OSX

**URL:** <https://www.ruby-forum.com/t/switched-to-osx/74936>\
**Category:** Rails\
**Created:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936 "2006-11-07T11:03:17Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/1 "2006-11-07T11:03:17Z")

</div>

I’m porting my app from a linux machine to OSX:

1. Seems like when I ctrl-C on the mac using webrick, and then  
restarting I get “address already in use” - I’ve killed every process  
I’ve seen, including doing a ‘sudo ps’… I really don’t want to do a  
-p to get out of this. How can I release the port? Seems like a lot of  
processes are getting filtered out on the mac.
2. I’m not finding the config method in Login Engine, which tells me  
Login Engine is not getting loaded. I’ve replaced my public directory  
with the mac generated version, are there any other suggestions?

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/2 "2006-11-07T11:03:22Z")

</div>

On Nov 5, 2006, at 12:21 AM, Joe wrote:

> 1. Seems like when I ctrl-C on the mac using webrick, and then  
> restarting I get “address already in use” - I’ve killed every process  
> I’ve seen, including doing a ‘sudo ps’… I really don’t want to do a  
> -p to get out of this. How can I release the port? Seems like a lot of  
> processes are getting filtered out on the mac.

Releasing the port is not in your control. The process should to do  
it before it dies.

Are you running in production mode? Could it be a buggy version of  
webrick?

I never had this problem with webrick or lighttpd. You might try  
ligttpd.

Jose

…  
Jose Hales-Garcia  
UCLA Department of Statistics  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/3 "2006-11-07T11:03:49Z")

</div>

Or mongrel. It’s good enough that rails-edge uses it by default (if  
it’s installed)

gem install mongrel  
mongrel\_rails start

You can try netstat -a and see if the port is being used by the  
process. BSD’s sockstat (which you can get via darwinports) is also a  
good call here.

Vish

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/4 "2006-11-07T11:03:57Z")

</div>

Ok, I tried switching to lighty, and I get:

$ ./script/server  
=\> Booting lighttpd (use ‘script/server webrick’ to force WEBrick)  
=\> Rails application started on [http://0.0.0.0:3000](http://0.0.0.0:3000)  
=\> Call with -d to detach  
=\> Ctrl-C to shutdown server (see config/lighttpd.conf for options)  
2006-11-05 08:11:59: (network.c.300) can’t bind to port: 0.0.0.0 3000  
Address already in use  
Exiting

Webrick now fails with the error from Login Engine:  
./script/server webrick  
=\> Booting WEBrick…  
./script/…/config/…/config/environment.rb:56: undefined method  
`config' for LoginEngine:Module (NoMethodError) from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’

Maybe the real problem is the LoginEngine not being loaded? I see on  
the web most of these solutions are restarting the server after  
modifying environment.rb, but obviously that’s not the case here.

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/5 "2006-11-07T11:03:56Z")

</div>

On Nov 5, 2006, at 6:45 AM, Vishnu G. wrote:

> Or mongrel. It’s good enough that rails-edge uses it by default (if  
> it’s installed)
> 
> gem install mongrel  
> mongrel\_rails start

That’s easy enough. I haven’t made the transition to Mongrel yet,  
but I should be doing it sooner than later. Can you say what caveats  
there are in transitioning a project from Lighttpd to Mongrel? I’ve  
configured the lighttpd.conf file how I want it. Are there  
transition guides?

By the way, Lighttpd is used over Webrick when it’s installed too.

Jose

…  
Jose Hales-Garcia  
UCLA Department of Statistics  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/6 "2006-11-07T11:03:58Z")

</div>

On Nov 5, 2006, at 8:16 AM, Joe wrote:

> $ ./script/server  
> =\> Booting lighttpd (use ‘script/server webrick’ to force WEBrick)  
> =\> Rails application started on [http://0.0.0.0:3000](http://0.0.0.0:3000)  
> =\> Call with -d to detach  
> =\> Ctrl-C to shutdown server (see config/lighttpd.conf for options)  
> 2006-11-05 08:11:59: (network.c.300) can’t bind to port: 0.0.0.0 3000  
> Address already in use

You need to clear out the stuck process first. Did you reboot  
first? The point is, if your socket is clear to start with, and you  
use another server, you should be able to quit them and not get this  
problem again.

Jose

…  
Jose Hales-Garcia  
UCLA Department of Statistics  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:04am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/7 "2006-11-07T11:04:13Z")

</div>

The reboot did clear out the port connection. I’m going to keep looking  
into netstat, hopefully I can determine how to find the process that is  
holding the port hostage. I’d rather not reboot when I have this issue.  
If I find anything I’ll update the thread, netstat had a lot of  
information.

I’ve nailed down the core issue to links - when the directories script,  
config and public are links instead of directories, I see the config  
method not found in LoginEngine. I was using links for those  
directories because I want my synchronizer to avoid syncing them to the  
server.

Why would rails care if I’m using links? Seems like it’s detecting all  
the directories, but not loading the plugins.

$ ls …/…  
config \<design\_dir\> public script  
$ rm -rf public config script  
$ ln -s …/…/public public  
$ ln -s …/…/config config  
$ ln -s …/…/script script  
$ ./script/server webrick  
=\> Booting WEBrick…  
./script/…/config/…/config/environment.rb:56: undefined method  
`config' for LoginEngine:Module (NoMethodError) from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’  
from  
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active\_support/dependencies.rb:147:in  
`require' from /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/servers/webrick.rb:52 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’  
from  
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active\_support/dependencies.rb:147:in  
`require' from /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/server.rb:30 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’  
from  
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active\_support/dependencies.rb:147:in  
`require’  
from ./script/server:3  
$ rm public config script  
$ cp -rf …/…/public .  
$ cp -rf …/…/config .  
$ cp -rf …/…/script .  
$ ./script/server webrick  
=\> Booting WEBrick…  
=\> Rails application started on [http://0.0.0.0:3000](http://0.0.0.0:3000)  
=\> Ctrl-C to shutdown server; call with --help for options  
[2006-11-05 10:28:23] INFO WEBrick 1.3.1  
[2006-11-05 10:28:23] INFO ruby 1.8.4 (2005-12-24) [i686-darwin8.8.2]  
[2006-11-05 10:28:23] INFO WEBrick::HTTPServer#start: pid=711 port=3000

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:03am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/8 "2006-11-07T11:03:59Z")

</div>

On Nov 5, 2006, at 8:41 AM, Jose Hales-Garcia wrote:

> You need to clear out the stuck process first. Did you reboot first?

Actually rebooting isn’t necessary just to test this. You can set  
the port in the lighttpd.conf file with…

server.port = 3003

Jose

…  
Jose Hales-Garcia  
UCLA Department of Statistics  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [November 7, 2006, 11:06am UTC](https://www.ruby-forum.com/t/switched-to-osx/74936/9 "2006-11-07T11:06:12Z")

</div>

On the dev environment? None at all. The production set up involves a  
different architecture, and you’ll probably still want lighty as your  
front server. [mongrel.rubyforge.org](http://mongrel.rubyforge.org) has excellent guides for  
deployment. Developing (on Windows esp, Ruby is slow) with Mongrel is  
way faster.

Vish
