Launchd Tools are for reading and creating launchd jobs.
For example, to see info about all Apple LaunchAgents and LaunchDaemons.
Or to create your own launchd job from an existing command:
cmd2launchd /usr/local/bin/daemond -d --mode foreground
Check it out here: https://github.com/kcrawford/launchd_tools
Once in a while you need to control an interactive command line tool. I kept getting a block when trying to read from a ruby IO popen pipe that was waiting for input. Here is my simple solution/workaround:
sh_process = IO.popen('sh > out.log', 'w')
f = File.open("out.log", "r")
Basically, just create a temp file and read from that. A little hackish, but it works.