在解释我的问题之前,我应该提到我对 Linux 还比较陌生,所以请原谅我的无知。
我使用旧的 Dell E10S 作为专用的 Minecraft 服务器。我成功安装了 Linux 和一个可用的 Minecraft 服务器(在这里下载)。
我还能够通过将命令添加到 中的 rc.local 文件中来让服务器在引导机器时启动/etc/rc.local
。
我在里面rc.local
写道:
#!/bin/bash
sleep 1m
cd /home/haven/dw-server/
sudo ./start.sh
它有效,但现在当我通过 ssh 登录时,服务器正在后台运行,并且我无法像在 Windows 上那样输入任何服务器命令。
有谁知道当我 ssh 进入我的机器时如何调出服务器命令行?
我已经尝试过该fg
命令。
答案1
首先,您不需要也不应该sudo
在/etc/rc.local
.启动脚本root
已作为 (UID 0) 运行。
其次,您的脚本需要退出,以便其余的启动活动可以运行。将您的服务器置于后台,如下所示:
#!/bin/bash
cd /home/haven/dw-server
nohup bash -c "sleep 1m;./start.sh" >/dev/null 2>&1 &
这会将服务器置于后台,将其转变为守护进程,丢弃输出和错误消息。它还将其置于sleep 1m
后台,以便启动可以更迅速地恢复。