I want to create multiple processes (each with cmd + arguments).

I need the pid of the created process so I can kill it if needed.

I also want to be able to read its output (line-by-line) in a non-blocking way (otherwise I have to create threads which I would like to avoid). Feeding its standard input is a bonus.

What's the best way to do this in ruby?

有帮助吗?

解决方案

Use IO.popen to fork the process (it will return a IO object with a pid method corresponding to the forked process). You can select on the IO object to avoid blocking.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top