archivos - ¿Cómo redirecciono stderr y stdout al archivo para un script de Ruby?
archivos en ruby (4)
Nota: la reapertura de las transmisiones estándar a / dev / null es un buen método antiguo para ayudar a que un proceso se convierta en un daemon. Por ejemplo:
# daemon.rb
$stdout.reopen("/dev/null", "w")
$stderr.reopen("/dev/null", "w")
¿Cómo redirecciono stderr y stdout al archivo para un script de Ruby?
Desde dentro de un script de Ruby , puede redirigir stdout
y stderr
con el método IO#reopen
.
# a.rb
$stdout.reopen("out.txt", "w")
$stderr.reopen("err.txt", "w")
puts ''normal output''
warn ''something to stderr''
$ ls a.rb $ ruby a.rb $ ls a.rb err.txt out.txt $ cat err.txt something to stderr $ cat out.txt normal output
./yourscript.rb 2>&1 > log.txt
redirigirá stdout y stderr al mismo archivo.
def silence_stdout
$stdout = File.new( ''/dev/null'', ''w'' )
yield
ensure
$stdout = STDOUT
end