下記のようにNohup
を使用して、バックグラウンドでPythonプログラムを開始しました-
Nohup zook.py &
今、私はこのプロセスを殺そうとしているので、下記のようにps
コマンドを実行しました
root@phxdbx1145:/home/david/zook# ps ax | grep zook.py
16352 pts/6 S+ 0:00 grep --color=auto zook.py
しかし、どういうわけか、PIDが変更されるたびに、その理由がわかりません。私はこれが好きなときはいつでも-
kill -9 16352
No Such Process
と常に言います。
そして、再びpxコマンドを実行すると、PIDが自動的に変更されたことがわかります。
だから私はこのプロセスをどのように殺すのか分かりませんか?
どういうわけか名前のプロセスを強制終了する方法はありますか?
更新:-
これは私が得ているものです。 pkill -9 zook.py
を実行した後、以下に説明するようにpsコマンドを実行しましたが、zook.pyが絶えず動いていますか?
root@dbx1145:/home/david/zook# pkill -9 zook.py
root@dbx1145:/home/david/zook# ps ax | grep zook.py
23870 pts/6 S+ 0:00 grep --color=auto zook.py
root@dbx1145:/home/david/zook# ps ax | grep zook.py
23872 pts/6 S+ 0:00 grep --color=auto zook.py
root@dbx1145:/home/david/zook# ps ax | grep zook.py
23874 pts/6 S+ 0:00 grep --color=auto zook.py
root@dbx1145:/home/david/zook# ps ax | grep zook.py
23876 pts/6 S+ 0:00 grep --color=auto zook.py
killall
を使用します。
killall <the_process_name>
あなたの例のpid(変化し続けるもの)は、PIDを見つけようとしているgrepのプロセスIDです。つまり、psとgrepは、探している実際のプロセスを見つけられません。
末尾の「&」を付けずにスクリプトを実行して、スクリプトの実行内容を確認してください。オッズは、あなたに静かに失敗し、実際にはまったく始まっていないことです。
ダッシュからSystem Monitorツールを使用して、プロセスIDを持つプロセスの完全なリストを表示することもできます。
pkillを使用して、killシグナルと同じkillシグナルを送信できます。
Eg: pkill firefox
pkill -9 firefox
xkill
で殺すことができます。 「実行」ダイアログに移動するだけです(Alt+F2)、xkill
と入力すると、マウスポインターが「x」に変わります。強制終了してクリックするアプリケーションをポイントすると、強制終了されます。システムモニターを読み込むよりもはるかに高速な場合があります。
基本的な問題は、コマンド 'ps ax | grep何か」。これは常にプロセスの1つとして「grep ...何か」をリストします。これは実際にはあなたが開始した「grep」です。代わりにpgrepを使用してpidを取得します
参照: https://unix.stackexchange.com/questions/74185/how-can-i-prevent-grep-from-showing-up-in-ps-results