1. 在bash中执行:
ssh host1 "sleep 10 &"
发现不能立即返回。
2. 执行:
ssh host1 "sleep 10 &>/dev/null &"
发现能立即返回。
原因参照pssh nohup 出现的问题
3. 然而,执行
ssh host1 "sleep 10 2>&1 >/dev/null &"
发现又不能立即返回了。
4. 改为,执行
ssh host1 "sleep 10 >/dev/null 2>&1 &"
发现又能立即返回了。
5. 原因:2>&1 放在重定向前面执行和放在后面执行是不同的
所以放在前面会阻塞,放在后面就不会。
参考:linux redirection: difference between using “2>&1” before and after “> somfilename”
6. 进一步探究
发现&>/dev/null
和>/dev/null 2>&1
是一样的。
参考Redirecting Standard Output and Standard Error
最后:附上画图链接mermaid-live-editor.