3

通常、Ctrl + Cで割り込みをかけることができますが、スレッドを使用していると機能しない場合があります。以下の例を参照してください。

Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> time.sleep(100)
^CTraceback (most recent call last):
  File "<stdin>", line 1, in <module>
K    eyboardInterrupt
>>> import Queue
>>> q = Queue.Queue(maxsize=3)
>>> q.put(0)
>>> q.put(1)
>>> q.put(2)
>>> q.put(3)
^C^C^C^C^C^C^C^C

^C^C^C

^C^C
^C
@*#()#@#@$!!!!!

編集: 通訳に戻る方法はありますか?これまでの解決策は、Pythonと既存の名前空間を完全に殺します。

4

3 に答える 3

3

Ctrl+で Python インタープリターを強制終了できます\

これは のSIGQUIT代わりにを送信しますSIGINT

于 2011-09-06T06:58:15.587 に答える
1

^C が失敗した場合の簡単な回避策は、最初に ^Z を使用してすべてのスレッドでプロセスを中断し、次にそれを強制終了することです。

これは Linux で ^C が失敗する多くの場合に機能します。テストしたばかりのように、ここでも機能します (Python v.2.6.5 でテスト済み):

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Queue
>>> q = Queue.Queue(maxsize=3)
>>> q.put(0)
>>> q.put(1)
>>> q.put(2)
>>> [^C]
KeyboardInterrupt #does not kill the process
>>> [^Z - Suspends and exits to shell]
[1]+  Stopped                 python
#mdf:~$ kill -9 %%
[1]+  Killed                  python
于 2011-09-06T07:22:41.890 に答える
0

これを行う怠惰な方法は、別のウィンドウを開くことです。

psPID を取得するために実行します。

kill問題のあるプロセスを強制終了します。

于 2011-09-06T13:47:35.560 に答える