将问题附加到golang的屏幕会话 - 内部存储库

时间:2016-02-16 06:39:30

标签: shell go minecraft gnu-screen

我正在开发MSCT,这是一个供个人使用的Minecraft服务器管理实用程序(目前为止)。我在屏幕会话中启动服务器,它工作得很好。我只是没有运气让屏幕开始附加或让MSCT恢复屏幕。

回购在这里:https://github.com/nathanpaulyoung/msct/blob/master/msct.go

第48行的相关功能是:

resumeCommand()

这是一个片段:

func resumeCommand() cli.Command {
    command := cli.Command{
        Name:    "resume",
        Aliases: []string{"r"},
        Usage:   "resume a server's screen session",
        Action: func(c *cli.Context) {
            servername := c.Args().First()
            screenname := buildScreenName(servername)
            args := []string{"-x", screenname}
            cmd := exec.Command("screen", args...)
            if serverExists(servername) {
                output, _ := cmd.Output()
                println(output)
            } else {
                println("No server known by the name \"" + servername + "\". Either server.jar is missing or the server directory was not configured before compilation.")
                os.Exit(999)
            }
        },
    }
    return command
}

我觉得它一定是我根本不知道的东西,就像某种特殊的方式来调用新的东西或东西。如果您有任何人知道解决方案,请填写建议或拉取请求。

那就是说,我一直在考虑更多关于这里的真正目标,并认为我会提到这一点,如果产生一个同样令人满意的解决方案,如果不是我的预期。 我希望Minecraft服务器能够继续运行,即使我没有主动查看服务器控制台。这是否意味着当我当前没有进入正在运行的框中,或者(在屏幕的情况下)没有实际连接到屏幕会话,它应该继续运行而不用我的眼睛。如果有一种方法,或许可以使用https://golang.org/x/crypto/ssh/terminal将屏幕内容管道传输到自定义golang终端会话,或者创建类似于Minecraft服务器可以运行的屏幕的方法,那么这些方法也同样令人满意。

0 个答案:

没有答案