我一直在寻找我需要的信息,但到目前为止还没有成功。
我希望每天发生的事情如下:
- 每次机器启动时,Minecraft 服务器都会启动。 (我已经为此编写了 shell 命令。)
- 上午 8:00,文本“stop”被提交到服务器以使其正常停止。
- 上午 8:02,计算机重新启动。
理想情况下,这将在我的桌面上打开一个窗口,在其中输入命令,并且还可以通过远程终端向服务器发送命令。
我该怎么做呢?我找到了有关使用的信息,sudo crontab -e
以便允许运行 Minecraft 服务器所需的超级用户访问权限。我也研究过使用命名管道,但我不能完全让它正常工作。我可以使用 创建它mkfifo mcserver
,但除非我在另一个终端中打开管道,否则它会阻塞。我还研究了screen
, 以及echo
基于 pid 的目录的 ing 命令,但我也无法让它工作。我如何检测并存储 pid?
感谢您的帮助。非常感谢。我已经为此苦苦挣扎了很长一段时间,但我似乎无法弄清楚。
答案1
使用这个脚本
然后将你的 crontab 设置为 root ,如下所示:
0 8 * * * service minecraft stop
2 8 * * * reboot
然后运行
chkconfig minecraft on
将 Minecraft 服务添加到开机自动启动。
答案2
你可以尝试使用“netcat”......
nc -l -p <port> -e /bin/bash
我不能说这无论如何都是安全的;我也不一定会宽恕这样做。基本上,这会将您的 BASH shell 绑定到您选择的端口。这被称为“反向 shell”,很可能会使您的机器易受攻击;除非您的防火墙配置正确。[iptables] 或其他方法。
因此,您可以使用 netcat 远程连接到您的计算机,方法是:
nc <remote_ip> <port>
并且它将提供一个发送命令的接口。
另一种方法是简单地创建一个运行侦听 VNC 服务器的脚本,以便您可以远程连接并进行可视化管理。在远程连接和[在服务器上]打开端口时,所有这些选项都需要小心。
我想这就是你要问的。制作一个小的 BASH 脚本,这就是小菜一碟。或者将其添加到您的 .rc 文件中,它会自动运行。