Ubuntu 从 shell 创建 tmux 会话导致“连接到 tmux 时出错”

Ubuntu 从 shell 创建 tmux 会话导致“连接到 tmux 时出错”

我有一台在 EC2 中运行的服务器,每次需要部署应用程序的新版本时,我都会运行以下脚本:

#Kills tmux and kills <my-app> process
pkill -f tmux
pkill ./my-app

#Removes old bot files and extracts new ones
rm -rf myapp/*
unzip publish.zip -d myapp

#Grants permissions to the botfile
chmod 750 myapp/*
chown root:ubuntu myapp/*

#Starts bot and creates a new tmux session
pkill -USR1 tmux
tmux new_session -d -s  session-name './myapp/my-app'

tmux如果我自己从终端调用它,启动新会话并运行应用程序的最后一行工作正常,但是如果我从脚本内运行它会导致以下错误:

error connecting to /tmp/tmux-1001/default (No such file or directory)

阅读其他堆栈交换帖子时,建议添加pkill -USR1 tmux到信号 tmux,尽管它没有解决问题。我该如何解决这个问题?

答案1

您收到的错误消息:

error connecting to /tmp/tmux-1000/default (No such file or directory)

意味着没有要连接的 tmux 会话,因此您的脚本似乎没有创建 tmux 会话。当我运行你的命令时

tmux new_session -d -s  session-name './myapp/my-app'

我收到以下错误:

unknown command: new_session

但是运行:

tmux new -d -s TestSession -c myapp/my-app

按预期工作。这是在: Linux #142-Ubuntu SMP 2022 年 8 月 26 日星期五 12:12:57 UTC 2022 跑步: 多路复用器3.0a

答案2

通过不分离会话、删除-d.还有一个错字new_session,应该是new-session

将最后一行替换为

tmux new-session -s myapp './my-app/MyApp'

创建一个新会话myapp,然后我可以使用该会话进行访问

tmux a -t myapp

相关内容