我使用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 <&- &