My question is, after spawning a process, the child process is looping to get data from its stdin. I would like to write new data to it using either Echo.Process.pipes[0].write(
Don't pass childFDs to spawnProcess and don't use the pipes attribute of the resulting process transport object. Neither of these things does what you think. If you drop the use of childFDs and switch back to writeToChild, you'll get the behavior you want.