【问题标题】:Bash - Is there a way to execute a command on a running screen?Bash - 有没有办法在正在运行的屏幕上执行命令?
【发布时间】:2020-04-16 12:44:44
【问题描述】:

我在基于 debian 9 的机器上运行一些 minecraft 服务器。这些不同的服务器在某些屏幕上运行。

我已经制作了一个我计划使用 cron 选项卡的备份脚本,但我的问题是我希望在我的世界服务器的控制台上注入一个命令,执行“说正在运行备份,预期滞后。”。问题是我在尝试在正在运行的分离屏幕上运行命令时遇到了麻烦。

我尝试在我的脚本中添加类似的东西:

screen -d -r mcprivate -X stuff "say hello world"  
screen -d mcprivate

但这只是重新连接屏幕并打开它。它不执行命令也不执行say注入命令,它只是在reattach screen命令之后停止脚本。

所以我的问题是:有没有办法在运行屏幕上执行 minecraft 服务器命令?

【问题讨论】:

  • 这是一道编程题吗?我不这么认为。
  • 嗯,这是一个脚本,所以它是一种编程
  • 您在询问程序screen的功能。
  • 是的,我明白了,这就是我编辑标签添加 gnu-screen 的原因

标签: linux bash shell debian gnu-screen


【解决方案1】:

所以,我终于一个人烦恼了。

首先,我不知道为什么,但是当命令screen -r mcprivate -X stuff "say hello world" 时它会自动重新连接和断开屏幕。所以我的代码的第二行甚至没有必要。为了避免循环注入“say hello world”,我只是在末尾添加了一个 \n 字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多