【问题标题】:Launch sikulix server with SSH connection使用 SSH 连接启动 sikulix 服务器
【发布时间】:2021-04-19 14:56:41
【问题描述】:

一些有用的信息:VM 位于 Azur 上并运行 Windows 10,我的本地计算机也运行 Windows 10,我的 VM 上安装了 OpenSSH_server,端口 22 和 50001 均对入站/出站开放。

这是我的问题:

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

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

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

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

是否有理由阻止 sikuli 服务器通过 SSH 启动?有什么我想念的吗?

编辑1:

这是我如何进行 SSH 连接(使用结构模块)

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("")

【问题讨论】:

  • OpenSSH 服务器是在任何类似于桌面会话的环境中运行,还是只是一个没有桌面的服务?
  • OpenSSH 服务器在 Windows 10 虚拟机上运行,​​它有一个桌面会话。

标签: python ssh sikuli


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-07-03
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多