「kill -9」が動作しない場合はどうなりますか?または新しいプロセスを開始するスクリプトを終了するには?とにかく私には役に立ちません。
Pythonスクリプトがあります別のプロセスIDを使用して自動的に開始同じポートを使用してください死んだとき使用sudo kill -9 <pid>
。
$ lsof -i :3002
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 13242 ubuntu 3u IPv4 64592 0t0 TCP localhost:3002 (LISTEN)
$ sudo kill -9 13242
$ lsof -i :3002
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 16106 ubuntu 3u IPv4 74792 0t0 TCP localhost:3002 (LISTEN)
$ sudo kill 16106
$ lsof -i :3002
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 16294 ubuntu 3u IPv4 75677 0t0 TCP localhost:3002 (LISTEN)
これはゾンビプロセスではありません。
$ ps -Al
4 S 0 16289 1 0 80 0 - 12901 poll_s ? 00:00:00 sudo
4 S 1000 16293 16289 0 80 0 - 1100 wait ? 00:00:00 sh
0 S 1000 16294 16293 0 80 0 - 34632 poll_s ? 00:00:00 python
試してみましたがsudo pkill -f <processname>
運がありませんでした。死にたくありません。
修正する:
対応する親プロセスは、sh
上の表に記載されている親プロセスです。sudo
突然それらを殺すのは安全かもしれません。これも共有Ubuntuサーバーです。
答え1
自動起動他のプロセスIDつまり、別のプロセスという意味です。したがって、子プロセスを監視する親プロセスがあり、プロセスの1つが終了すると、親プロセスによって復活します。サービスを完全に停止するには、親プロセスを停止する方法を学びます。 Killの使用は間違いなくオプションの1つですが、サービスモニターを正しくシャットダウンするにはクリーンアップが必要な場合があるため、SIGKILL
Right One TMではない可能性があります。
モニター・プロセスを見つけるには、プロセス全体のリストを確認する必要があります。これは、実際のリスナーがそのプロセスを親プロセスから分離した可能性があるためです(通常は組み合わせてfork() + setsid()
)。この場合、ps faux
私が見つけた出力(少なくとも他の実装によって異なる場合があります)はprocps
非常に便利です。階層ツリーのすべてのプロセスを一覧表示します。すでに存在しない限りPIDパッケージ(あなたも見ることができますウィキペディア)、モニターPIDはリスナーのPIDより小さくなければなりません(もちろん、PIDラップラウンドが発生しない限り)。
答え2
プロセスのリスニングポートがわかっている場合は、fuser
with-k
フラグを使用できます。
それはまるで、
fuser -k 3002/tcp