2017-11-24 6 views
1

私はPythonスクリプトを停止するためにcontrol-zを使用していましたが、最近アクティビティモニターでアクティブになっていて、そこ。 Control-Cは機能せず、^ Cのみが出力されます。おそらく、コンボは再マッピングされましたか?どのように私はこれを把握することができるかに関する任意の提案。デフォルトCTRL+ZことでターミナルでPythonを終了する(control-Cでは^ Cを印刷する)macOS 10.12

+0

ご協力いただきありがとうございます。問題が解決しました! – bbrodsky

+0

優秀!私は答えとして自分のコメントを掲載しました。問題を解決するためにあなたがしたことをお聞かせください。 – cdarke

+0

Ctrl-Dは通常、対話的にシェルでEOFを送信するようにマップされます。 – bipll

答えて

1

man bashを参照してジョブ制御を検索、プロセスを一時停止し、背景にそれを配置します。

OS Xの標準bashでは、CTRL+Cは、フォアグラウンドプロセスにSIGINT(割り込み信号)を送信しますが、^Cも出力します。 SIGINTは実行中のプロセスによって無視されたり処理されたりすることがあります。デフォルトのPythonが

SIGINTを処理し、あなたのスクリプトがexcept Exception:または類似(非常に悪いアイデア)のような一般的な例外を処理した場合、それはCTRL+Cを無視することができKeyboardExceptionに変換します。

スクリプトの信号処理と一般的な例外処理を確認してください。

端末タイプstty -aに再マッピングをチェックし、ccharsを探して、あなたがintr = ^C;susp = ^Z;が表示されるはずですし。

+1

ありがとうございます、私のプログラムはSIGINTをブロックしていた非同期ハンドラを持っていました。 – bbrodsky

関連する問題