IDLEでテキストファイルをトークン化するプログラムを作成しましたが、349個のテキストファイルがトークン化され始めました。どうすれば停止できますか?実行中のPythonプログラムを停止するにはどうすればよいですか?
回答:
プログラムを停止するには、Control +を押しますC。
^C
...端子と、まだCPUの多くを使用しているシステムモニタを示しpythonで
Ctrl + Z
(少なくともLinuxでは)。次に、それを強制終了する場合kill %n
は、「n」がを押しCtrl + Z
たときに「停止」の横に表示された番号である場合に実行します。再開する場合は、を実行しfg
ます。
exit()
コードで関数を使用する場合にも実行できます。より理想的には、あなたはすることができますsys.exit()
。パッケージを介して並行して実行している場合でも、Pythonが終了sys.exit()
する可能性がありmultiprocessing
ます。
注:を使用するにはsys.exit()
、次のものをインポートする必要があります。import sys
sys.exit(1)
プロセスを停止しない例を見つけることができました。私は基本的に複数のスレッドを持っており、それらのそれぞれはによって開始された外部プロセスでブロックしますPopen
。Pythonプロセス自体だけでなく、Pythonプロセスによって作成されたすべてのサブプロセスを強制終了するための核オプションが必要です。今のところ見つかりませんでした。
プログラムがインタラクティブコンソールで実行されている場合、CTRL+Cを押すとKeyboardInterrupt
メインスレッドで例外が発生します。
Pythonプログラムがそれをキャッチしない場合、PythonはKeyboardInterrupt
終了します。しかし、except KeyboardInterrupt:
ブロック、または裸のようなものexcept:
は、このメカニズムが実際にスクリプトの実行を停止するのを防ぎます。
KeyboardInterrupt
動作していない場合は、SIGBREAK
代わりにシグナルを送信できる場合があります。Windowsでは、CTRL+Pause/Breakは、キャッチ可能KeyboardInterrupt
な例外を生成せずにインタプリタによって処理される場合があります。
ただし、これらのメカニズムは主に、Pythonインタープリターが実行されており、オペレーティングシステムのイベントに応答している場合にのみ機能します。Pythonインタープリターが何らかの理由で応答しない場合、最も効果的な方法は、インタープリターを実行しているオペレーティングシステムプロセス全体を終了することです。このメカニズムは、オペレーティングシステムによって異なります。
Unixスタイルのシェル環境では、CTRL+Zを押して、現在コンソールを制御しているプロセスを一時停止できます。シェルプロンプトが返されたら、を使用jobs
して中断されたジョブを一覧表示し、最初の中断されたジョブをkill %1
。で強制終了できます。(再度実行を開始する場合は、を使用してフォアグラウンドでジョブを続行できます。fg %1
;ます。詳細については、ジョブ制御に関するシェルのマニュアルを参照してください。)
または、UnixまたはUnixライクな環境では、PythonプロセスのPID(プロセス識別子)を見つけて、PIDで強制終了することができます。のようなものps aux | grep python
を使用して、実行中のPythonプロセスを見つけてから、を使用kill <pid>
してSIGTERM
シグナルを送信します。
kill
UnixのコマンドはSIGTERM
デフォルトで送信し、PythonプログラムSIGTERM
はsignal
モジュールを使用するためのシグナルハンドラーをインストールできます。理論的には、のシグナルハンドラーはSIGTERM
、プロセスを正常にシャットダウンする必要があります。ただし、プロセスがスタックしている場合(たとえば、中断できないIOスリープ状態でブロックされている場合)、SIGTERM
プロセスがウェイクアップして処理することさえできないため、シグナルは効果がありません。
シグナルに応答していないプロセスを強制的に強制終了するには、SIGKILL
シグナルを送信する必要があります。これは、定数の数値であるkill -9
ためと呼ばれること9
もありますSIGKILL
。コマンドラインから、を使用してkill -KILL <pid>
(またはkill -9 <pid>
略して)SIGKILL
、プロセスの実行をすぐに停止することができます。
Windowsでは、プロセスシグナルのUnixシステムはありませんが、TerminateProcess
関数を使用して実行中のプロセスを強制的に終了することができます。インタラクティブに、これを行う最も簡単な方法は、タスクマネージャーを開きpython.exe
、プログラムに対応するプロセスを見つけて、[プロセスの終了]ボタンをクリックすることです。このtaskkill
コマンドを同様の目的で使用することもできます。
Ctrl + C
ます。exit()
それを実行できます。pkill -f name-of-the-python-script
。python script.py&
Ctrl-Break はCtrl-Cよりも強力です
実行中のプログラムを停止するには、Ctrl+Cを使用してプロセスを終了します。
Pythonでプログラムで処理するには、sys
モジュールをインポートしてsys.exit()
、プログラムを終了する場所を使用します。
import sys
sys.exit()
キーボードを使用してPythonスクリプトを停止するには:Ctrl
+C
コードを使用して停止するには(これはPython 3で機能しました):
import os
os._exit(0)
次のものも使用できます。
import sys
sys.exit()
または:
exit()
または:
raise SystemExit
Control+DはWindows10で動作します。また、exit()
最後に置くことも動作します。
Jupyter Notebookを使用している場合、exit()はカーネルを強制終了するため、お勧めできません。raise
コマンドはプログラムを停止します。
プログラムを停止するには、CTRL+を押すだけですD
またはexit()
。
Ctrl+ Alt+Deleteを押すと、タスクマネージャーがポップアップします。実行中のPythonコマンドを見つけて右クリックし、[停止]または[強制終了]をクリックします。
ctrl+c
それを殺す必要があります。また、kill -9
それは