Entiendo que > /dev/null
redirige las cosas a las /dev/null
que actúa como un agujero negro. Sin embargo, no entiendo lo que < /dev/null
significa. Vi un guión escrito así:
nohup myprogram > foo.out 2> foo.err < /dev/null &
Entonces, ¿qué significa < /dev/null
en el código anterior?
Aquí hay un ejemplo donde se sugiere
<&-
?Respuestas:
Asegura que todos los flujos de E / S se contabilizan / ocupan.
De esta manera, el proceso en segundo plano no tiene nada "vinculado" al terminal, por lo que puede continuar con su negocio sin que su programa intente leer desde TTY, lo que provocaría que el terminal se bloquee.
En este caso, dado que está iniciando el proceso a través de ssh desde un script de shell, se está asegurando de que el script pueda avanzar sin gravámenes.
fuente
< /dev/null
.< /dev/null
?program </dev/null
significa queprogram
está tomando su argumento de entrada (se puede ingresar el parámetro a una opción o se puede ingresar el archivo para operar) a través del descriptor de archivo 0, es decir, STDIN, desde el archivo/dev/null
.Como ya sabe,
/dev/null
no contiene nada, notificará EOF (Fin del archivo) al leerlo, por lo que cualquier programa que tome información/dev/null
básicamente no redirigirá nada como argumento de entrada.fuente
< /dev/null
lado? Solo escríbelo comonohup myprogram > foo.out 2> foo.err &
program
¿qué quiere como STDIN? Algunos programas pueden hacer que sea obligatorio, por lo que debe poner algo como STDIN, este podría ser el caso aquí que acaba de usar/dev/null
como STDIN y deja que el programa haga el procesamiento y ponga STDOUT y STDERR en los archivos mencionados ...