我正在尝试创建一个新的tmux会话并执行命令'vagrant up'。 “Vagrant up”需要超过3个小时,所以我想分离会话,以便稍后回来并通过附加回同一会话来检查该命令的状态。
我按照StackOverflow post中指定的答案来完成相同的操作。
我收到错误no session found
。这是我的代码:
$cat tmux_sh.sh
#!/bin/bash
echo "step 1"
tmux new-session -d -s rtb123 'vagrant up'
echo "step 2"
tmux detach -s rtb123
$./tmux_sh.sh
step 1
step 2
session not found: rtb123
答案 0 :(得分:9)
您在创建会话时使用-d
开关。这意味着会话将开始分离,因此您不需要使用detach命令。此外,如果您尝试分离时会话未运行,则表示它已不再存在,因此您的命令可能会退出。
答案 1 :(得分:9)
启动一个shell,并向其发送vagrant,以便您可以看到错误。
tmux new-session -d -s rbt123
tmux send-keys 'vagrant up' C-m
tmux detach -s rtb123
C-m
表示点击返回。
答案 2 :(得分:0)
新的、分离的、命名的和在默认 shell 中执行的命令:
tmux new-session -d -s apiserver 'java -cp /root/apiserver.jar com.package.EntryPoint'
附加使用:
tmux attach-session -t apiserver