我正在使用运行Python 2.7的嵌入式Busybox系统。
每当我使用
杀死Python时killall python
当我为该会话运行交互式python shell break的交互式python shell的未来实例时。
所以,例如我有一个ssh连接到当前运行python shell的设备。现在我用" killall python"来自另一个shell。第一个ssh连接上的shell关闭(如预期的那样)消息" Terminated"。到目前为止,这一切都是预期的。
现在我使用" python"命令再次在我有最后一个python shell的shell中。现在我得到了异常行为,因为没有显示我的输入。
所以,例如如果我通常输入" print(' test')"我明白这一点:
>>> print('test')
test
>>>
如果我在杀死python后也这样做,我会看到:
>>> test
>>>
如您所见,我的输入(" print(' test')\ n")未按预期显示。 但是,程序的所有输出都是可见的。
要解决此问题,我必须关闭连接(例如ssh连接)并重新启动它。 它只影响在我使用killall命令时运行python shell的连接。因此,如果有多个ssh连接,那么只有受killall命令时python运行的那些连接受影响。
如果我使用" killall"并不重要。或者只是"杀死[PID]",结果是一样的。
有谁知道是什么原因以及如何解决这个问题?
答案 0 :(得分:2)
"本地回声" - 您键入的打印输入 - 是可切换的终端设置。您将终端设置为关闭状态。 (如果程序在提示输入密码时退出,则很容易发生这种情况,这是出于安全原因而关闭本地回声的特殊情况。)
要将终端完全重置为已知状态,请在重新启动Python之前运行stty sane
。要仅启用本地回显,请运行stty echo
。