使用 SSH 连接启动 sikulix 服务器

Launch sikulix server with SSH connection

一些有用的信息:虚拟机在 Azur 上 运行 Windows 10,我的本地计算机也是 运行 Windows 10,我有 OpenSSH_server安装在我的虚拟机上,端口 22 和 50001 都为 inboud/outbound.

打开

这是我的问题:

我有一个程序 运行 在我的本地计算机 (compA) 上有一个图形界面,它允许我使用 SSH 连接到远程计算机(使用 python 的 fabric 模块),并且在文本小部件内显示输出。我成功连接到我的虚拟机 (compB),并通过 SSH a .cmd 在 compB 上 运行。 .cmd 文件只有一行:java -jar C:\Redacted\sikulix\sikulix.jar -d 2 -s

手动执行时,效果很好,我可以访问 http://localhost:50001/,我可以执行脚本。

当我通过 SSH 执行它时,我看到的只是 OpenJDK 平台二进制进程正在启动,但我无法访问 http://localhost:50001/ 并且无法执行脚本。

我可以执行其他命令,例如 ipconfigdir

有什么原因会阻止 sikuli 服务器通过 SSH 启动吗?有什么我想念的吗?

编辑 1:

下面是我如何进行 SSH 连接(使用 fabric 模块)

client = fabric.Connection(host=hostname, user='redacted', connect_kwargs={'password': 'Redacted'})

这里我是如何运行命令(结构模块)

command = "java -jar C:\SaisigoWriter\sikulix\sikulix.jar -d 2 -s"
client.run(command)

我还有一个输出重定向器:

class TextReddirector(object):
    def __init__(self, widget, tag="stdout"):
        self.widget = widget 
        self.tag = tag

    def writer(self, output_str):
        self.widget.config(state="normal")
        self.widget.insert("end", output_str, (self.tag,))
        self.widget.see(tk.END)
        self.widget.update()
        self.widget.config(state="disabled")

    def flush(self):
        print("")

嗯,我发现,在尝试启动 java 命令之前执行 echo,一切正常,太棒了。