Entiendo que > /dev/nullredirige las cosas a las /dev/nullque actúa como un agujero negro. Sin embargo, no entiendo lo que < /dev/nullsignifica. Vi un guión escrito así:
nohup myprogram > foo.out 2> foo.err < /dev/null &
Entonces, ¿qué significa < /dev/nullen 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/nullsignifica queprogramestá 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/nullno contiene nada, notificará EOF (Fin del archivo) al leerlo, por lo que cualquier programa que tome información/dev/nullbásicamente no redirigirá nada como argumento de entrada.fuente
< /dev/nulllado? 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/nullcomo STDIN y deja que el programa haga el procesamiento y ponga STDOUT y STDERR en los archivos mencionados ...