foreman icon indicating copy to clipboard operation
foreman copied to clipboard

Cannot read echo when using byebug or debugger tool

Open thedon-chris opened this issue 6 years ago • 12 comments

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?

thedon-chris avatar Feb 27 '18 16:02 thedon-chris

I am also experiencing this issue. In the debugger, I am not able to see what I am typing.

fakhir-shad avatar Jun 01 '18 07:06 fakhir-shad

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

ColinTheRobot avatar Jun 06 '18 19:06 ColinTheRobot

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: 2018-11-20 17 21 06

PS most important flag here is --handle-input. Debugging just works

skyksandr avatar Nov 20 '18 14:11 skyksandr

@thedon-chris Is this still an issue?

andrewmcodes avatar Mar 18 '19 22:03 andrewmcodes

Still an issue

b-nik avatar Sep 05 '19 09:09 b-nik

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 avatar May 01 '20 23:05 dchersey

@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.

b-nik avatar May 02 '20 07:05 b-nik

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.

cesc1989 avatar May 04 '20 13:05 cesc1989

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.

LoganBresnahan avatar May 09 '21 22:05 LoganBresnahan

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.

djpowers avatar Sep 22 '21 02:09 djpowers

@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.

n-studio avatar Aug 26 '22 03:08 n-studio

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: 2018-11-20 17 21 06

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!

akapitula avatar Aug 14 '23 10:08 akapitula