回答:
プロセスID(pid)を見つける必要があります。これを行う1つのコマンドは
$> ps -ef
結果をPythonプロセスに制限するには、結果をgrepすることができます
$> ps -ef | grep python
次のような結果が得られます。
user 2430 1 0 Jul03 ? 00:00:01 /usr/bin/python -tt /usr/sbin/yum-updatesd
2番目の列はpidです。次に、killコマンドを次のように使用します。
$> kill -9 2430 (i.e. the pid returned)
スクリプトのプロセスID(PID)を見つけて発行します kill -9 PID
ターミナルでフォアグラウンドプロセスとして実行されていない限り、プロセスを強制終了します。その場合、Contrl-Cで強制終了できます。
次のコマンドでPIDを見つけます。
ps -elf | grep python
すべてのpythonプロセスをリストし、正しいプロセスを選択してそのPIDを記録します。それから
kill -9 <whatever_the_PID_is>
プロセスを強制終了します。この段階でプロセスを終了したというメッセージが表示される場合があります。
または、top
コマンドを使用してpythonプロセスを見つけることもできます。k
(killの場合)を入力するだけで、top
プログラムは強制終了するプロセスのPIDを要求します。top
画面からスクロールする可能性があるため、興味のあるすべてのプロセスを表示するのが難しい場合がありますps
。
-9
、私は最初に「ソフトに」それを殺します。反応しない場合にのみ、を使用します-9
。
この単純な行を試してください、それはすべてを終了しますscript.py
:
pkill -9 -f script.py
完璧な世界では、スクリプトのドキュメントを読んで、終了を指示するために使用する必要のある信号を確認します。実際には、おそらくTERMシグナルを送信する必要があります。まず、TERMを無視する場合はKILLシグナルを使用します。そのため、psコマンドを使用して(既に説明したように)プロセスIDを見つけます。その後、を実行できますkill -TERM <pid>
。いくつかのプログラムは、そのような信号を受け取ったときに、開いているファイルなどをクリーンアップします。そのため、そのようなものから始める方が良いです。それが失敗した場合、大きなハンマー以外にやることはあまりありません kill -KILL <pid>
。(数値、たとえば-KILL = -9を使用でき、おそらく変更されることはありませんが、理論的には名前を使用する方が安全です)
スクリプトの名前がわかっている場合は、すべての作業を単一のコマンドに減らすことができます。
ps -ef | grep "script_name" | awk '{print $2}' | xargs sudo kill
それがpythonスクリプトであることを確認したい場合:
ps -ef | grep "python script_name" | awk '{print $2}' | xargs sudo kill
すべてのpythonスクリプトを強制終了する場合:
ps -ef | grep "python" | awk '{print $2}' | xargs sudo kill
私はあなたがアイデアを得ると思う;)
注意:例にあるとおり、スクリプト名を引用符で囲む必要があります。