远程运行ssh命令而不重定向输出

时间:2012-09-20 08:43:57

标签: python ssh openssh

我想在我的服务器上运行python脚本(python脚本有GUI)。但我想从ssh开始。像这样:

  • ssh me@server -i my_key "nohup python script.py" ...>让脚本永远运行 但它抱怨“无法访问视频驱动程序”,因为它试图使用我的ssh终端作为输出。

我可以以某种方式使我的命令输出在服务器机器上运行而不是在我的终端上运行......基本上类似于“唤醒lan功能” - >告诉服务器你想要什么,他将使用自己的系统做任何事情(不发送任何输出)

2 个答案:

答案 0 :(得分:0)

怎么样?
ssh me@server -i my_key "nohup python script.py >/dev/null 2>&1"

当然,您可以使用重定向到某个远程日志文件而不是/ dev / null。 ? :)

编辑:X上的GUI应用程序通常使用$ DISPLAY变量来知道它们应该显示在何处。此外,X11显示服务器使用授权来允许或禁止连接到其显示器的应用程序。命令

export DISPLAY=:0 && xhost +

可能对您有所帮助。

答案 1 :(得分:0)

您是不是可以使用python ssh extension而不是调用外部应用程序?

它会:

  • 作为一个过程运行
  • 保证所有可能的系统中的调用都是相同的
  • 从“执行”中失去了开销
  • 通过ssh发送所有内容(您不必担心像"; possibly local executed command
  • 这样的输入

如果没有,请参阅Piotr Wades的建议。