Je comprends > /dev/null
redirige les choses vers /dev/null
lesquelles agit comme un trou noir. Cependant, je ne comprends pas ce que cela < /dev/null
signifie. J'ai vu un script écrit comme ceci:
nohup myprogram > foo.out 2> foo.err < /dev/null &
Alors, que signifie < /dev/null
le code ci-dessus?
voici un exemple où il est suggéré
<&-
-il?Réponses:
Il garantit que tous les flux d'E / S sont pris en compte / occupés.
De cette façon, le processus en arrière-plan n'a rien de «lié» au terminal, vous pouvez donc vous consacrer à vos activités sans que votre programme essaie de lire à partir de TTY, ce qui entraînerait le blocage du terminal.
Dans ce cas, puisque vous lancez le processus sur ssh à partir d'un script shell, il s'assure que le script peut se déplacer sans encombre.
la source
< /dev/null
.< /dev/null
?program </dev/null
signifie que leprogram
prend son argument d'entrée (peut être un paramètre d'entrée dans une option ou peut être un fichier d'entrée pour fonctionner) via le descripteur de fichier 0, c'est-à-dire STDIN, à partir du fichier/dev/null
.Comme vous le savez déjà,
/dev/null
ne contient rien, il notifiera EOF (End of File) lors de la lecture, donc tout programme prenant des entrées/dev/null
ne redirigera essentiellement rien comme argument d'entrée.la source
< /dev/null
côté? Il suffit de l'écrire commenohup myprogram > foo.out 2> foo.err &
program
.. que veut-il en tant que STDIN? Certains programmes peuvent le rendre obligatoire, vous devez donc mettre quelque chose comme STDIN, cela peut être le cas ici que vous venez d'utiliser/dev/null
comme STDIN et laissez le programme faire le traitement et mettre STDOUT et STDERR dans les fichiers mentionnés ..