【发布时间】:2018-03-05 19:18:49
【问题描述】:
我正在尝试使用 ssh 在另一台计算机上的 tmux 环境中运行脚本,但 ssh 连接在脚本完成之前不会终止。让我详细解释一下:
这是 test_ssh.sh:
#!/bin/bash
name="computername"
ssh $name /bin/bash <<\EOF
cd /scratch
mkdir test
cd test
cp /home/user/test_tmux3.sh .
tmux -c ./test_tmux3.sh &
echo 1 # at this point it waits until test_tmux3.sh is finished, instead of exiting :(
EOF
这是 test_tmux3.sh(作为测试是否发生任何事情):
#!/bin/bash
mkdir 0min
sleep 60
mkdir 1min
sleep 60
mkdir 2min
最后,我想循环访问多台计算机 ($name) 以在每台计算机上启动一个脚本。我现在遇到的问题是 test_ssh.sh 在 echo 1 之后等待,并且仅在 tmux -c test_tmux3.sh & 完成后退出(2分钟后)。如果我手动输入 control-C test_ssh.sh 停止并且 tmux -c test_tmux3.sh & 继续在计算机 $name 上运行(这就是我想要的)。如何自动化最后一步并让 ssh 自行退出?
【问题讨论】:
标签: linux bash session ssh tmux