Python 远程运行ssh命令而不重定向输出
我想在我的服务器上运行python脚本(python脚本有GUI)。但是我想从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
... > 让脚本永远运行 但它抱怨“无法访问视频驱动程序”,因为它试图使用我的ssh终端作为输出李>sshme@server-我的_键“nohup python script.py”
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如果你没有特别的教程,我将使用常规文档:)谢谢