nohup:忽略输入 - 这是什么意思?

nohup:忽略输入 - 这是什么意思?

我使用nohup命令有一段时间了

nohup bash life.bash > nohup.out 2> nohup.err &

nohup.err文件中我总是有一行nohup: ignoring input。你能帮我弄清楚这是什么意思吗?

答案1

这只是nohup告诉你它的设置是什么;它将其输出到其标准错误,您已将其重定向到nohup.err.您可以通过重定向其标准输入来避免该消息:

nohup bash life.bash > nohup.out 2> nohup.err < /dev/null &

nohup检查其标准输入、标准输出和标准错误以查看哪些连接到终端;如果它发现任何连接,它会适当地处理它们(忽略输入,将输出重定向到nohup.out,将错误重定向到标准输出),并告诉您它做了什么。如果它没有找到需要断开连接的任何内容,它本身不会输出任何内容。

答案2

nohup就是告诉你它正在做什么,它忽略了输入。

如果您想避免此消息,请重定向标准输入/dev/null这样

nohup bash life.bash </dev/null >nohup.out 2>nohup.err &

答案3

man nohup

“如果标准输入是终端,则从不可读的文件重定向它。”

因此,

nohup: ignoring input and appending output to 'nohup.out'

尽管它正在做它应该做的事情选项条目,这就是输入被丢弃的原因。

看起来您正在重复使用重定向。诺哈普已经为您创建了一个 nohup.out,如果一切正常,标准错误也应该重定向到那里。

干杯!

答案4

您可以像这样关闭 STDIN 文件描述符: <&-

整行是:

nohup ./script.sh >> ./out 2>&1 <&- &

相关内容