Comments (10)
Also, this is with 0.4.1
from childprocess.
Right it's a regression in 0.4.1. Looking into it.
from childprocess.
Thanks. Let me know if I can help in any way, I tried to investigate further but couldn't figure it out.
from childprocess.
The problem is essentially that we're now (since 0.4.1) letting the child process have it's own process group. This was done to fix issue #66 / #67, but it breaks tty/stdin like you point out.
I tried experimenting with tcsetpgrp(3)
, but couldn't make it work. I'll take another stab at it tomorrow.
Also need to find a way to spec this that doesn't involve manual typing into the terminal.
from childprocess.
HAHAH (at your last sentence).
As an interim, could we have an option to not create a new process group?
from childprocess.
OK - this should now work on master:
p = ChildProcess.build("ruby", "-e", "p STDIN.tty?; p STDIN.gets")
p.io.inherit!
p.keep_pgid = true if p.kind_of?(ChildProcess::Unix::Process)
p.start
p.wait
I'd really like to keep platform-specific options out of the API, so hopefully it'll be gone ASAP :)
from childprocess.
I totally understand. I don't know if you would mind maybe scoping it to note that it is temporary and cutting a release with it? I can do a #respond_to?
check on it but require it for some upcoming things (and require the fixes in 0.4.1).
Thanks!
from childprocess.
All right, pushed as 0.4.2.
from childprocess.
I've pushed 0.5.0 which removes the keep_pgid
flag and reverts the default behaviour to what it was pre 0.4.1.
Anyone who wants the 0.4.1-0.4.2 behaviour must explicitly enable it:
proc = ChildProcess.build(...)
proc.leader = true
proc.start
from childprocess.
I agree this is the correct solution. Thank you!
from childprocess.
Related Issues (20)
- Redirect to IO.pipe on Windows causes inability to start a process HOT 6
- Security Question: Is there a reason childprocess is released as an unsigned gem? HOT 2
- FFI is a required pre-requisite HOT 4
- Pipe i/o example in documentation is incorrect HOT 2
- Erro ao rodar o comando rspec -fd HOT 1
- childprocess kills detached windows process on exit HOT 4
- FFI is a required pre-requisite for Windows or posix_spawn support in the ChildProcess gem. HOT 1
- A backend based on Process.spawn HOT 12
- Ruby 3.0 support HOT 10
- code hanging attempting to @thread.join HOT 1
- Should work for the M1 chip, but needs to be mapped or smth
- `host_cpu` changes between Ruby 2.7.2 and 2.7.3 HOT 2
- FFI installes but rake test get error HOT 4
- cannot load such file -- ffi (LoadError) HOT 2
- Use with StringIO HOT 2
- posix_spawn is not yet supported on aarch64-linux (aarch64-linux), HOT 2
- posix_spawn is not yet supported on sparc-solaris (sparc-solaris2.11) HOT 1
- I happen to be having this error after even having all both ruby, gem, and even chocolatey handy HOT 2
- Test suite is going to be broken with Ruby 3.3 HOT 1
- differences between macos and linux HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from childprocess.