从 bash 脚本执行时,tmux 找不到 运行 服务器
tmux can't find running server when executed from bash script
我有一个简单的 bash 脚本,其中包含许多命令,如下所示:
(cd /home/mc/ ;
echo msg-here ;
tmux send-keys -t mc "say xyz" ENTER ;
echo successful ;) > scripts/logs/$(date +%d-%m-%Y).txt
执行脚本时,我在终端中得到了 no server running on /tmp/tmux-0/default
的结果,尽管我可以从终端毫无问题地执行 tmux send-keys -t mc "say xyz" ENTER
。
备注
- 我是 运行 来自同一个地方的脚本和命令(并且都是
mc
用户)。
- 日志文件的输出不显示错误消息,而是看起来一切正常。
谢谢
注意:这只是一种解决方法 - 但它似乎对我的用例来说完美无缺。
方法: 我创建了一个新的 bash 脚本 myscript-entry.sh
以实际用户身份运行主脚本。
脚本内容如下。
su -c "/home/mc/myscript.sh" - mc
从包含两个脚本的目录(或任何地方,因为“入口”脚本使用绝对路径)执行 sudo ./myscript-entry.sh
,现在应该可以正确执行 tmux 命令。
我有一个简单的 bash 脚本,其中包含许多命令,如下所示:
(cd /home/mc/ ;
echo msg-here ;
tmux send-keys -t mc "say xyz" ENTER ;
echo successful ;) > scripts/logs/$(date +%d-%m-%Y).txt
执行脚本时,我在终端中得到了 no server running on /tmp/tmux-0/default
的结果,尽管我可以从终端毫无问题地执行 tmux send-keys -t mc "say xyz" ENTER
。
备注
- 我是 运行 来自同一个地方的脚本和命令(并且都是
mc
用户)。 - 日志文件的输出不显示错误消息,而是看起来一切正常。
谢谢
注意:这只是一种解决方法 - 但它似乎对我的用例来说完美无缺。
方法: 我创建了一个新的 bash 脚本 myscript-entry.sh
以实际用户身份运行主脚本。
脚本内容如下。
su -c "/home/mc/myscript.sh" - mc
从包含两个脚本的目录(或任何地方,因为“入口”脚本使用绝对路径)执行 sudo ./myscript-entry.sh
,现在应该可以正确执行 tmux 命令。