如何与 rc.local 启动的脚本交互?

Th3*_*ger 7 startup command-line scripts minecraft

我有一个从rc.local(在这种情况下是 minecraft 服务器)运行的脚本,我需要能够与之交互(稍后连接到它的 STDIN 和 STDOUT)。我怎样才能做到这一点?

Ser*_*nyy 7

你想要做的是使用screen. 它允许在其会话中生成一个进程并与之分离。本质上,您的问题与类似。

您想要执行的 3 个步骤:

注意:启动 minecraft 服务器/etc/rc.local可能是一个潜在的安全漏洞。考虑使用su username -c '<screen command here>' &以不同用户身份运行服务器。另见:https : //serverfault.com/a/422952/363611

  • `screen` 的替代方案是更现代的 `tmux`。尽管命令行选项都略有不同,但原理仍然相同。 (2认同)
  • PS:由于您是从 `rc.local` 执行所有这些操作:您不应该以超级用户权限运行 Minecraft 服务器——尤其是如果它的端口是可公开访问的。 (2认同)