Eu entendo > /dev/null
redireciona coisas para as /dev/null
quais age como um buraco negro. No entanto, eu não entendo o que < /dev/null
significa. Eu vi um script escrito assim:
nohup myprogram > foo.out 2> foo.err < /dev/null &
Então, o que significa < /dev/null
o código acima?
aqui está um exemplo em que é sugerido
<&-
faz?Respostas:
Ele garante que todos os fluxos de E / S sejam contabilizados / ocupados.
Dessa forma, o processo em segundo plano não tem nada "ligado" ao terminal, para que você possa prosseguir com seus negócios sem que seu programa tente ler no TTY, o que causaria a interrupção do terminal.
Nesse caso, como você está iniciando o processo através do ssh a partir de um script de shell, garante que o script possa se mover sem ônus.
fonte
< /dev/null
.< /dev/null
?program </dev/null
significa que eleprogram
está usando seu argumento de entrada (pode ser um parâmetro de entrada para uma opção ou pode ser um arquivo de entrada para operar) através do descritor de arquivo 0, ou seja, STDIN, do arquivo/dev/null
.Como você já sabe,
/dev/null
não contém nada, ele notificará o EOF (Fim do arquivo) após a leitura, para que qualquer programa que receba entrada/dev/null
redirecione basicamente nada como argumento de entrada.fonte
< /dev/null
fora? Basta escrever comonohup myprogram > foo.out 2> foo.err &
program
que ele quer como STDIN? Alguns programas podem torná-lo obrigatório, então você precisa colocar algo como STDIN, pode ser o caso aqui que você acabou de usar/dev/null
como STDIN e deixar o programa fazer o processamento e colocar STDOUT e STDERR nos arquivos mencionados ..