我们有基于Beaglebone黑色的自定义脚本,并且其中有以下两个脚本。
#!/bin/sh -eux /home/test_timeout_issue.sh & sleep 5 echo "Now exiting run_in_background.sh script"
#!/bin/sh -eux count=0 while true do echo "run count : ${count}" sleep 1 count=$((count + 1)) done
现在从PC上,我正在按以下方式运行run_in_background.sh
ssh -o ConnectTimeout=3 root@<board ip> "/home/run_in_background.sh"
现在,以上命令运行run_in_background.sh
,该命令在后台运行test_timeout_issue.sh
,并在5秒后返回命令。但是,当命令返回在板上运行的test_timeout_issue.sh
时也会关闭。
我可以使用以下命令解决问题
ssh -o ConnectTimeout=3 root@<board ip> "/home/run_in_background.sh 2>&1"
我不明白为什么将stderr
重定向到stdout
可以解决问题?
有人可以解释出什么问题了,而上述解决方案是否正确?如果不是,什么是理想的解决方案。
仅供参考,我们没有nohup
在董事会上:(