【问题标题】:Stty getting insane on using Python subprocessStty 在使用 Python 子进程时变得疯狂
【发布时间】:2011-09-27 07:46:48
【问题描述】:

我遇到了一个奇怪的问题。每次我通过subprocess.Popen(cmd).wait() 调用特定命令cmd 时,当命令结束时stty 会变坏(不会在shell 上回显我的进一步命令,换行符不起作用等)。我必须运行stty sane 才能再次恢复正常。这可能是什么原因?

更新 我正在运行的命令正在启动elasticsearch 进程。该命令在后台启动进程。

【问题讨论】:

  • 你在执行什么命令?
  • 当 ES 至少有一个 phyton 客户端时,你为什么要通过 python 在控制台上做弹性搜索?
  • @Karussell 是的,我使用 pyes。但是我找不到通过pyes启动elasticsearch服务器的方法,这就是我上面所做的。
  • 在 java 中,您通过 NodeBuilder 启动一个节点 - pyes 也不可能吗?
  • @Karussell packages.python.org/pyes/guide/reference/java-api/client.html 是 Java 中的 NodeBuilder API。但可能它在 pyes 中不可用。

标签: python linux debugging subprocess stty


【解决方案1】:

您正在运行的命令可能会向您的终端发送一些转义序列,这些转义序列正在更改其模式或其他设置。需要完整终端功能的程序可以做到这一点(例如基于文本的编辑器)。

捕获您正在执行的程序的标准输出并阻止它进入屏幕可能会有所帮助。你试过吗?

【讨论】:

    猜你喜欢
    • 2021-02-13
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2012-06-08
    • 2020-07-07
    相关资源
    最近更新 更多