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


18

我有nohup一段时间喜欢使用命令

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

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


如果您要自己进行重定向,则几乎没有用nohupbash life.bash >life.out 2>life.err </dev/null & disown -h "$!"仅使用外壳本身内置的功能即可完成相同操作。
查尔斯·达菲

Answers:


14

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

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

nohup检查其标准输入,标准输出和标准错误,以查看哪些已连接到端子;如果找到任何已连接的对象,它将适当地处理它们(忽略输入,将输出重定向到nohup.out,将错误重定向到标准输出),并告诉您已完成操作。如果找不到需要断开的任何内容,它本身不会输出任何内容。


6

nohup 确切地告诉您它在做什么,它在忽略输入。

如果你想避免这个消息,重定向标准输入/dev/null这样的

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

我希望这意味着,它会在后台运行时从简单的意义上忽略所有键盘输入。
Manohar Reddy Poreddy

3
man nohup

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

因此,

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

尽管有OPTION条目,它仍在执行应做的工作,这就是为什么输入被丢弃的原因。

ALSO看来你正在使用冗余的重定向。nohup已经为您创建了一个nohup.out,如果一切正常,还应该将stderr重定向到那里。

干杯!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.