当我使用 rc.local 脚本在启动时运行我的 minecraft 服务器时,如何控制它?

当我使用 rc.local 脚本在启动时运行我的 minecraft 服务器时,如何控制它?

我有个问题想问你们。我运行了一个 MC 服务器,到目前为止一切顺利。为了使它自主运行,我在启动时使用 rc.local 中的 bash 脚本加载来运行它,很简单。

#!/bin/bash
cd /home/minecraft sudo java -Xms512M -Xmx1008M -jar /home/minecraft/spigot-1.9.jar nogui

好的,问题是当我通过 ssh 连接时,我看不到服务器。它正在运行,因为我可以毫无问题地玩,但我无法控制它。

当我使用脚本中的命令运行服务器,但在启动时没有,服务器一直在屏幕上,等待命令并显示信息,但是当从启动脚本运行它时,我看不到任何内容。

如果我从启动时运行它并稍后通过 ssh 连接,我如何获得控制权或查看服务器屏幕?

希望您能理解我的意思。提前谢谢您,祝您有美好的一天。

答案1

除非您连接到设备的物理控制台,否则脚本中启动的大多数操作的控制台输出rc对您都是不可用的。如果您手动启动 MC 服务器然后注销,情况也是如此。您可以将输出记录到文件中,但这无助于您稍后在其中输入命令。有两种工具可以解决此问题:。两者都将保留您的流程的输入和输出句柄,并允许您稍后重新连接它们。 screen一直存在,但不是为自动化而设计的。 tmux较新且不太知名,但更容易实现自动化,因此我将演示:

tmux new-session -s demo -n tab_name -d "sudo top"

将启动一个名为的新 tmux 会话,demo其中包含一个名为tab_namerunning的选项卡sudo top。当您运行此控件时,它将返回到 shell,并且您不会top立即看到。这很好,因为这意味着您可以将其放入rc脚本中,并且它不会阻止它们。然后,无论何时您想要访问它,只需:

tmux attach

以您开始操作时使用的同一用户身份,您将可以访问命令的输入和输出。要退出,tmux请按ctrl- bd这将带您返回到 之外的 shell tmux

这是一个简介您可能会发现学习的下一步进展很好tmux

相关内容