gpt4 book ai didi

python - 在 Python 中通过 ssh 运行 popen 时,终端窗口不会保持打开状态

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:39 27 4
gpt4 key购买 nike

我正在编写一个在 Linux 服务器上运行的 Python 程序。它监视一些日志文件,并根据给定的关键字在 GUI 中显示该日志文件中的行。

我添加了一个新功能,可以打开一个带有“less”的终端窗口,显示用户在我的程序中双击的行。

我的问题是这样的:当我在本地(在我的计算机上)运行我的程序时,它运行良好。但是当我通过 SSH 连接到主服务器运行我的程序时,程序运行良好,但是当我双击其中一行时,我看到一个快速打开和关闭的控制台窗口。

下面是负责打开“Less Terminal”的代码:

p = subprocess.Popen(args = ["gnome-terminal", "--command = less -p " + "\"" +searchString + "\"" " -j 10 " + "\"" + path + "\""], stdout = subprocess.PIPE) 

如何让它保持打开状态?

附言如果我添加 shell = TRUE,它只会打开一个没有 less 结果的新终端窗口。

最佳答案

我的问题与 ssh 无关;我设法在我的本地机器上重新创建了它。在本地测试程序时,我使用短模式字符串进行测试,但是当我移动到服务器并开始使用实际字符串时,它们太大了!

发生的事情是:我给 less 一个大于 99 个字符的模式。我得到了:“ungetcc 溢出”,known bug ,随后在 less 的 438 版中得到修复。

关于python - 在 Python 中通过 ssh 运行 popen 时,终端窗口不会保持打开状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10383502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com