5

バックグラウンドでインタラクティブな python コンソールを起動すると、奇妙な問題が発生しました。バックグラウンドからインタープリターを再開した後、入力したテキストは表示されません (つまり、>>> プロンプトが表示されるだけですが、私が書いたものは何でも解釈します。[enter] を押すと、同じプロンプトで別の >>> プロンプトが作成されました)。ライン)。

問題を再現する簡単な方法は、次のように入力するだけです。

python &
fg

この問題は、プログラムをフォアグラウンドで開始し、バックグラウンドに置き、フォアグラウンドに戻すと発生しません。

python
[ctrl-z]
bg
fg

バックグラウンドで対話型インタープリターを起動する必要がある理由がわからない場合は、次のシナリオを検討してください。

実行に時間がかかるシミュレーションがありますが、完了後に結果を操作したいと考えています。したがって、私はプログラムを開始しました:

python -i simulation.py &
fg #(after it's finished running)

簡単な解決策は、フォアグラウンドで開始し、バックグラウンドに移動してから、後でフォアグラウンドに移動することですが、なぜこれが起こるのか疑問に思っています.

4

1 に答える 1

2

インタープリターをフォアグラウンドにした後、次のコマンドを実行して端末の ECHO モードを強制することを検討してください。

import termios
attr = termios.tcgetattr(1)
attr[3] = attr[3] | termios.ECHO
termios.tcsetattr(1, termios.TCSANOW, attr)
于 2013-11-04T22:19:08.413 に答える