gpt4 book ai didi

linux - 如何在 tmux 窗口中启动脚本后自动终止 ssh 连接?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:33 26 4
gpt4 key购买 nike

我正在尝试使用 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 自行退出?

最佳答案

在分离的 tmux session 中启动命令。

#!/bin/bash

name="computername"
ssh $name /bin/bash <<\EOF
mkdir /scratch/test
cd /scratch/test
cp /home/user/test_tmux3.sh .
tmux new-session -d ./test_tmux3.sh
echo 1
EOF

现在,tmux 命令将在创建新 session 并在该 session 中启动脚本后立即退出。

关于linux - 如何在 tmux 窗口中启动脚本后自动终止 ssh 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34302344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com