$ ls
una.rb
$ ruby una.rb
$ ls
una.rb err.txt out.txt
$ cat err.txt
algo a stderr
$ cat out.txt
normal de salida
¿Cómo puede el normal $stdout ser restaurado de nuevo después?
¿por qué utilizar reabrir el método ? es decir que si «out.txt» no existe, será creado?
Echa un vistazo a esta respuesta sobre cómo restaurar $stdout después.
Usted necesitará $stdout.sync = true y $stderr.sync = true si la esperanza de, digamos, la cola el archivo, mientras que las líneas están siendo escritas. De lo contrario, las líneas no ser escrita hasta que el proceso se cierra, o alguna otra cosa, como que los vaciados de los arroyos.
¿Qué entiende usted por «ayudar a un proceso de convertirse en un demonio»?
En UNIX con el fin de hacer un programa en un demonio, el programador debe no sólo a la horquilla en segundo plano, pero también redirigir los flujos de e / s estándar. Está usted familiarizado con esto?
Nota: Si utiliza el incorporado en Process.daemon se puede hacer esto para usted. Consulte docs aquí.
va a redirigir stdout y stderr en el mismo archivo.
Suponiendo que se ejecutan en *nix
Creo que > funciona en Windows – no estoy seguro acerca de 2> aunque.
Esto funcionará en windows también.
Esta respuesta también se hace suposiciones acerca de lo que shell está utilizando el usuario, incluso dentro de *nix. Algunas de las conchas tienen diferentes redirección de estilos, por ejemplo, el comportamiento predeterminado de zsh.
De dentro de un script en Ruby, usted puede redirigir
stdout
ystderr
con elIO#a abrir
método.$stdout.sync = true
y$stderr.sync = true
si la esperanza de, digamos, la cola el archivo, mientras que las líneas están siendo escritas. De lo contrario, las líneas no ser escrita hasta que el proceso se cierra, o alguna otra cosa, como que los vaciados de los arroyos.Nota: la reapertura de los flujos estándar a /dev/null es un buen método para ayudar a un proceso para convertirse en un demonio. Por ejemplo:
Process.daemon
se puede hacer esto para usted. Consulte docs aquí.va a redirigir stdout y stderr en el mismo archivo.
>
funciona en Windows – no estoy seguro acerca de2>
aunque.