Published:

Getting Foreman working on Windows 7 after installing the Heroku Toolbelt

Following the Getting Started with Node.js on Heroku tutorial, I ran into a couple of problems with running the "foreman start" command.

Firstly the command wasn't found at all and I got the following error:

'foreman' is not recognized as an internal or external command,
operable program or batch file.

To fix this add the path to the ruby bin folder to the PATH environment variable, in my case it was 'C:\Program Files (x86)\Heroku\ruby-1.9.2\bin'.

Then when I tried to run the command I got a 'Bad file descriptor' error:

C:\Projects\HerokuSample>foreman start
Bad file descriptor
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:372:in `read_nonblock'
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:372:in `block (2 levels) in watch_for_output'
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:368:in `loop'
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:368:in `block in watch_for_output'
C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:88:in `rescue in notice_signal': uninitialized constant Errno::EINT (NameError)
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:85:in `notice_signal'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:69:in `block (2 levels) in register_signal_handlers'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:401:in `call'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:401:in `wait2'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:401:in `watch_for_termination'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/engine.rb:60:in `start'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/lib/foreman/cli.rb:41:in `start'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/thor-0.18.1/lib/thor/command.rb:27:in `run'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/thor-0.18.1/lib/thor/invocation.rb:120:in `invoke_command'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/thor-0.18.1/lib/thor.rb:363:in `dispatch'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/thor-0.18.1/lib/thor/base.rb:439:in `start'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.63.0/bin/foreman:7:in `<top (required)>'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/bin/foreman:23:in `load'
        from C:/Program Files (x86)/Heroku/ruby-1.9.2/bin/foreman:23:in `<main>'

After some digging around I found out this is due to a bug with this version (0.63, and also 0.62) of foreman on windows 7, so to get around it you need to go back to version 0.61 by uninstalling foreman and installing the older version:

gem uninstall foreman
gem install foreman -v 0.61

After that everything was peachy and I was able to get the sample 'hello world' app running on my machine.

C:\Projects\HerokuSample>foreman start
13:13:10 web.1  | started with pid 6512
13:13:10 web.1  | Listening on 5000

 


Subscribe or Follow Me For Updates

Subscribe to my YouTube channel or follow me on Twitter, Facebook or GitHub to be notified when I post new content.

Other than coding...

I'm currently attempting to travel around Australia by motorcycle with my wife Tina on a pair of Royal Enfield Himalayans. You can follow our adventures on YouTube, Instagram and Facebook.


Need Some NodeJS Help?

Search fiverr to find help quickly from experienced NodeJS developers.



Supported by