Stty在使用Python子进程时变得疯狂

Stty在使用Python子进程时变得疯狂,python,linux,debugging,subprocess,stty,Python,Linux,Debugging,Subprocess,Stty,我面临一个奇怪的问题。每次我通过subprocess.Popen(cmd).wait()调用一个特定的命令cmd,当命令结束时,stty就会坏掉(不会在shell上回显我的进一步命令,换行符不工作,等等)。我必须运行stty sane才能再次获得stty罚款。这可能是什么原因 更新我正在运行的命令正在启动进程。该命令在后台启动进程 您正在运行的命令可能正在向正在更改其模式或其他设置的终端发送一些转义序列。需要完整终端功能的程序可以做到这一点(例如,基于文本的编辑器) 捕获正在执行的程序的标准输出

我面临一个奇怪的问题。每次我通过
subprocess.Popen(cmd).wait()
调用一个特定的命令
cmd
,当命令结束时,stty就会坏掉(不会在shell上回显我的进一步命令,换行符不工作,等等)。我必须运行
stty sane
才能再次获得stty罚款。这可能是什么原因


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

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


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

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


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

您正在执行什么命令?当至少有一个phyton客户端用于ES时,为什么要通过python在控制台上执行elasticsearch任务?@Karussell是的,我使用pyes。但是我找不到一种通过pyes启动elasticsearch服务器的方法,这就是我在上面所做的。在java中,你可以通过NodeBuilder启动一个节点——pyes也可以吗?@Karussell是java中的NodeBuilder API。但可能在pyes中不可用。您正在执行什么命令?当至少有一个phyton客户端用于ES时,为什么要通过python在控制台上执行elasticsearch操作?@Karussell是的,我使用pyes。但是我找不到一种通过pyes启动elasticsearch服务器的方法,这就是我在上面所做的。在java中,你可以通过NodeBuilder启动一个节点——pyes也可以吗?@Karussell是java中的NodeBuilder API。但它可能在pyes中不可用。