DarthSim / overmind

Process manager for Procfile-based applications and tmux
MIT License
2.89k stars 82 forks source link

Unable to send input to child processes #4

Closed ibrahima closed 7 years ago

ibrahima commented 7 years ago

First of all, thanks for creating this! It seems like exactly what I've always wanted - a more reliable way of running tasks in a Procfile, where I can still communicate with the child processes.

Unfortunately, I just tried it out with my Rails app and I can't seem to actually communicate with any of the child processes - when I run overmind connect rails or other processes, any input I enter doesn't go to the child, it just gets echoed. When I try to send command sequences like ctrl-C, I just see ^C, and ^M when hitting enter, etc. Normally when using tmux I don't have to do anything special to send input to the child, so I'm wondering what I'm doing wrong here. Or did I misunderstand what overmind does?

Procfile is pretty generic:

rails:  bin/rails s
guard:  bundle exec guard start --no-interactions -w app config spec lib db vendor
worker: bundle exec sidekiq -C config/sidekiq.yml
mailcatcher: bundle exec mailcatcher -f --ip 0.0.0.0 --smtp-port 6666
webpack: npm run server
storybook: npm run storybook

Running Overmind 1.0.7 on a Rails 4 app on Ubuntu 14.04 inside Vagrant/VirtualBox (built tmux 2.5 from source, as it seems like the tmux 1.8 that Trusty comes with isn't supported by overmind).

Any help would be appreciated. Thanks again!

One addition: If I make a new window in tmux with C-b c, I can send input to that shell, so it seems like it's something to do with what Overmind is doing with ptys?

I also see the same behavior on my Linux host which is Ubuntu 17.04.

redross commented 7 years ago

Have the same issue. ctrl+enter does submit it properly, but it's not working as a regular terminal (command history doesn't work, navigation arrows don't work, etc.)

ibrahima commented 7 years ago

Hmm, interesting. For me, I can type stuff, and then use Ctrl+Jto submit that line to the child process, but that's not what I'd expect. Ctrl+enter does nothing though. But for instance, I can send SIGINT to a child using Ctrl+C followed by Ctrl+J which is slightly cumbersome but at least usable.

DarthSim commented 7 years ago

Hi! It's definitely an issue. The problem is probably in a wrapper which Overmind uses to redirect output to the main process. I need some time to investigate this.

DarthSim commented 7 years ago

Please check the latest release. I've tested in on my Ubuntu server, and it seems to work fine.

ibrahima commented 7 years ago

Awesome! Works for me!

Thanks for fixing it!