foreman
foreman copied to clipboard
Cannot read echo when using byebug or debugger tool
Hello,
I am using foreman alongside a debugger tool inside of Ruby on Rails applications. Foreman is managing my puma server, redis-server, workers, and mailcatcher.
When I use a debugger tool alongside foreman, I cannot read the echo of my commands. This becomes really frustrating during the debugging process.
Can anyone please help?
I am also experiencing this issue. In the debugger, I am not able to see what I am typing.
Yep, there's a closed issue #58 here with some old stuff about using pry-remote. But haven't been able to get it to work yet
I've faced a similar problem and looks like I've found a good workaround - https://github.com/kimmobrunfeldt/concurrently So all you need is to write a script that feeds arguments to it.
Here is my example:
concurrently -p '[{name}]' --handle-input -n back,front -c 'black.bgGreen,black.bgCyan' 'rails s' 'bin/webpack-dev-server'
Here is how it looks like:
PS most important flag here is --handle-input
. Debugging just works
@thedon-chris Is this still an issue?
Still an issue
banged my head around this for a while then realized ... wait... I can just use 2 terminal tab, one for webpack-dev-server and one for rails. Duh.
@dchersey You can also try the following if you want them on one terminal: ./bin/webpack-dev-server & bundle exec rails s && fg
You still see the output of both, with rails being the main process (so it accepts input etc in pry)
Ever since I found this I stopped bothering with foreman.
Only caveat is you need to CtrlC twice to close both programs, but it doesn't really matter.
banged my head around this for a while then realized ... wait... I can just use 2 terminal tab, one for webpack-dev-server and one for rails. Duh.
When I want to debug I usually do this. When working in normal flow, keep using Foreman.
If it helps anyone here, I created a program https://github.com/LoganBresnahan/meow that utilizes GNU's fg
to manage my commands and let's me run commands automatically in different terminal tabs. Foreman is a great gem and I stumbled here trying to solve my own issues with pry
. My program is just shell scripts and after figuring out file descriptors pry
will work.
There was a solution proposed in #536 but it was ultimately not accepted. That PR cites pry/pry#1290, which I believe is the same bug being reported here.
@ddollar, would you potentially be open to reconsidering this approach? Or is there another possible solution you'd be amenable to? There seems to be a lot of demand from both pry and foreman users to figure out this problem.
@ddollar mentioned that foreman wouldn't be able to figure out which process read the data from stdin. I think that a good compromise that would solve 99% of use cases would be to allow only the first process to read the stdin.
I've faced a similar problem and looks like I've found a good workaround - https://github.com/kimmobrunfeldt/concurrently So all you need is to write a script that feeds arguments to it.
Here is my example:
concurrently -p '[{name}]' --handle-input -n back,front -c 'black.bgGreen,black.bgCyan' 'rails s' 'bin/webpack-dev-server'
Here is how it looks like:
PS most important flag here is
--handle-input
. Debugging just works
I've been struggling to have a multiprocess tool that will run from 1 docker container and the debug will work from console. After spending a lot of time searching the workaround with foreman and overmind that npm package solved it, thanks!