Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 远程运行ssh命令而不重定向输出_Python_Ssh_Openssh - Fatal编程技术网

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

Python 远程运行ssh命令而不重定向输出,python,ssh,openssh,Python,Ssh,Openssh,我想在我的服务器上运行python脚本(python脚本有GUI)。但是我想从ssh开始。大概是这样的: sshme@server-我的_键“nohup python script.py” ... > 让脚本永远运行 但它抱怨“无法访问视频驱动程序”,因为它试图使用我的ssh终端作为输出 我能不能让我的命令输出在服务器上运行,而不是在终端上运行。。。基本上类似于“局域网唤醒功能”->告诉服务器你想要什么,他会用自己的系统做所有事情(不发送任何输出)怎么样 ssh me@server -i m

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

  • sshme@server-我的_键“nohup python script.py”
    ... > 让脚本永远运行 但它抱怨“无法访问视频驱动程序”,因为它试图使用我的ssh终端作为输出
我能不能让我的命令输出在服务器上运行,而不是在终端上运行。。。基本上类似于“局域网唤醒功能”->告诉服务器你想要什么,他会用自己的系统做所有事情(不发送任何输出)

怎么样

ssh me@server -i my_key "nohup python script.py >/dev/null 2>&1"
当然,您可以使用重定向到某个远程日志文件,而不是/dev/null。 ? :)

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

export DISPLAY=:0 && xhost +

可能会对您有所帮助。

您是否可以使用而不是调用外部应用程序

它将:

  • 作为一个进程运行
  • 保证所有可能的系统调用都是相同的
  • 失去“执行”带来的开销
  • 通过ssh发送所有内容(您不必担心输入,比如
    “可能是本地执行的命令”

如果没有,就按照Piotr Wades的建议去做。

如果你不想把它重写成一个“无头”脚本,试着在X内执行它(X11转发或其他)。这似乎是正确的,但我需要将它重定向到像/dev/tty7(我的显示器)这样的东西,因为脚本有GUI输出,你说的“什么?”GUI输出?如果是GUI应用程序,则需要转发X11连接,这是另一回事,您需要在本地运行X服务器(或者它的替代品,如XQuartz或其他),或访问远程端的远程桌面。不,不,我不想转发它…这是一个GUI应用程序。但我希望它在该服务器上启动GUI。基本上,我只希望GUI根据客户端的ssh请求显示在服务器计算机上考虑“xhost+”命令(需要从已授权的远程计算机上的X客户端启动,或包含在X11配置/启动中):导出显示=:0&&xhost+好,我可以使用谷歌你知道:P如果你没有特别的教程,我将使用常规文档:)谢谢