Pythonスクリプトが実行され、継続的にエラーをログファイルにダンプします。
スクリプトを編集してもう一度実行したいのですが、スクリプトを停止する方法がわかりません。
現在PuTTYを介してLinuxにログオンしており、そこですべてのコーディングを行っています。では、Linuxでpythonスクリプトを停止するコマンドはありますか?
プロセス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)
この単純な行を試してください、それはすべてのscript.py
を終了します:
pkill -9 -f script.py
スクリプトのプロセス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
の方が簡単/と思います。より良い。
プログラムがシェルの現在のプロセスである場合、Ctrl-Cを入力するとPythonプログラムが停止します。
完璧な世界では、スクリプトのドキュメントを読み、どの信号を使用してスクリプトを終了させるかを確認します。実際には、おそらくTERMシグナルを最初に送信する必要があります。おそらく、TERMを無視する場合はKILLシグナルを使用します。つまり、psコマンドを使用して(既に説明したように)、プロセスIDを見つけます。次に、kill -TERM <pid>
。一部のプログラムは、そのような信号を受け取ったときに、開いている可能性のあるファイルなどをクリーンアップします。そのため、そのようなものから始めるのが良いでしょう。それが失敗した場合、大きなハンマーを除いて、やることはほとんど残っていません:kill -KILL <pid>
。 (数値を使用できます(例:-KILL = -9、それらはおそらく決して変更されませんが、理論的には名前を使用する方が安全です))
スクリプトの名前がわかっている場合は、すべての作業を1つのコマンドに減らすことができます。
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
私はあなたがアイデアを得たと思います;)
注意:例にあるように、スクリプト名を ""で囲む必要があります。