再起動を続けるプロセスを強制終了する


16

「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サーバーです。


それはうまく死んでいるように見えます。あなたのlsof出力は、新しいPIDごとに単一の時間を示しています。プロセスは単に再起動しています。
パトリック14

はい、それは永遠に死にたくありません。決して死ななかったように目覚める:(
ラクシュミナラヤナングプタ14

回答:


25

別のプロセスIDで自動的に開始するということは、それが別のプロセスであることを意味します。したがって、その子を監視する親プロセスがあり、1つが死んだ場合、親によって再生成されます。サービスを完全に停止する場合は、親プロセスを停止する方法を確認してください。それを殺すことはSIGKILL当然の選択肢の一つ、おそらくない右の一つであるTMサービスモニタが正常にシャットダウンするためにいくつかのクリーンアップを行う必要があるかもしれないので、。

モニタープロセスを見つけるには、プロセスリスト全体を検査する必要があります。実際のリスナーは(通常はfork() + setsid()コンボによって)親から分離される可能性があるためです。この場合、ps fauxprocps少なくとも、他の実装では異なる場合があります)の出力がかなり便利であることがわかります-すべてのプロセスを階層ツリーにリストします。あった場合を除きPIDラップ(も参照ウィキペディア)(あなたはPID-ラップアラウンドをヒットコースの場合を除き)、モニターPIDは、リスナーのいずれかのPIDよりも小さくなければなりません。


その親のsh親はsudoです。それらを殺しても大丈夫ですか?
ラクシュミナラヤナングプタ14

どのプロセスの親?ポート3002でリッスンしているのは?その場合、すべてのプロセスをリストし、どれがモニターであるかを推測します。Linux procpsでは、通常、の出力がps -faux十分に有益であることがわかります。また、モニターのPIDは実際のリスナーのPIDよりも小さくする必要があることに注意してください(システムがしばらく稼働し、サービスが開始されてから既にPIDがラップされている場合を除く)。
ペテルフ14

すごい。ps -faux親から殺し始めるのを助けました。コメントの解決策で答えを更新してください。
ラクシュミナラヤナングプタ14

はい、私はそれについて考えていました... :)
ペテルフ14

ps fauxsupervisordどの無限に再起動されたLaravelキューデーモンが
ハング

4

プロセスのリスニングポートがわかっている場合は、fuserwith -kflag を使用できます。

何かのようなもの、

fuser -k 3002/tcp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.