无法从启动时在 tmux 会话中访问 jarfile

无法从启动时在 tmux 会话中访问 jarfile

我有一个脚本,它启动一个新的 tmux 会话并运行 Minecraft 启动命令,如下所示:

#!/bin/bash

# Create a new session and run a command inside the session
tmux new-session -d -s mc
tmux set-option -t mc set-remain-on-exit on
tmux send-keys -t mc "java -Xmx6G -jar fabric-server-mc.1.19.4-loader.0.14.19-launcher.0.11.2.jar nogui" Enter

我可以手动运行类似的脚本,它启动得很好,我可以看到 Minecraft 服务器运行并从那里访问它的 CLI。我说的是“类似的脚本”,但它只是缺少set-remain-on-exit on(从 crontab 运行 tmux 所需的)并附加会话,这与问题无关。

虽然我已经使用 crontab 在启动时启动该脚本并且 tmux 确实可以工作,但附加会话后显示的所有内容都是:

Error: Unable to access jarfile fabric-server-mc.1.19.4-loader.0.14.19-launcher.0.11.2.jar

我尝试过chmod +x、、chmod 755chmod 777脚本,但运气不佳。我不确定为什么从 crontab 启动时无法访问 jarfile,有人知道原因吗?

编辑:尝试指定整个 java 路径(/usr/bin/java)也无济于事。

我发现,当从其所在目录之外的任何位置加载它时,jarfile 将无法访问,这自然也会影响 cron,所以我该如何解决这个问题,至少对于 cron 来说?

答案1

为了解决这个问题,我需要在启动脚本中添加目录来指定 jarfile 的位置,尽管启动脚本位于同一位置。

#!/bin/bash

#set the working directory
cd /home/minecraft/fabric-1.19.4

# Create a new session and run a command inside the session
tmux new-session -d -s mc
tmux set-option -t mc set-remain-on-exit on
tmux send-keys -t mc "java -Xmx6G -jar fabric-server-mc.1.19.4-loader.0.14.19-launcher.0.11.2.jar nogui" Enter

相关内容