'nohup 2>&1> out'与'nohup> out 2>&1'

问题描述 投票:0回答:1

对我来说,以下两个bash命令产生不同的结果:

# returns instantly
ssh localhost 'nohup sleep 5 >out 2>&1 &'
# returns after 5 seconds
ssh localhost 'nohup sleep 5 2>&1 >out &'

令人惊讶,因为以下两个bash命令产生相同的结果:

# both return instantly
nohup sleep 5 >out 2>&1 &
nohup sleep 5 2>&1 >out &

为什么?

linux shell ssh nohup
1个回答
0
投票
此表格:

command >out 2>&1

...取出标准并将其放入文件中。然后,它接受标准错误,并将其放置在与标准错误相同的位置。

两个流发送到一个文件。

此表格:

command 2>&1 >out

...接受标准错误,然后将其放到标准输出上。然后,它将取出要发送到标准的内容,并将其发送到文件。它

向文件发送标准错误。因此,在您的终端上,您正在后台执行任务,并且提示会立即返回。使用ssh时,在第一种情况下,由于所有内容都已发送到文件,因此没有任何输出可显示。在其他情况下,标准输出仍可以显示应用程序尝试发送到标准错误的信息。

我期望在第一种情况下ssh立即返回,因为永远不会有任何输出。在第二种情况下,有一个开放的流可能会返回数据供您查看。

© www.soinside.com 2019 - 2024. All rights reserved.