Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

vistahigherlearning / logstash   deb

Repository URL to install this package:

/ opt / logstash / vendor / bundle / jruby / 1.9 / gems / cabin-0.6.1 / examples / pipe-spoon.rb

require "cabin"
require "spoon"


logger = Cabin::Channel.get
logger.subscribe(STDOUT)
logger.level = :info

fileactions = Spoon::FileActions.new
fileactions.close(0)
cor, cow = IO.pipe # child stdout 
cer, cew = IO.pipe # child stderr
fileactions.dup2(cow.fileno, 1)
fileactions.dup2(cew.fileno, 2)

spawn_attr = Spoon::SpawnAttributes.new
pid = Spoon.posix_spawn("/bin/sh", fileactions, spawn_attr, ["sh", "-c"] + ARGV)
puts pid
cow.close
cew.close

logger.pipe(cor => :info, cer => :error)
pid, status = Process.waitpid2(pid)

puts status.inspect