12

OOM キラーから sigkill をキャッチする方法があるかどうか疑問に思っていました。私はタスク キューを持っていますが、OOM によって強制終了される巨大なタスクが頻繁に作成されます。これ:

catch Exception as ex:
    # clean up!

SIGKILL をキャッチできないため、機能しません。だから........SIGKILLの後にクリーンアップするための戦略はありますか? フォークして、子プロセスを監視できますか? もしそうなら、子プロセスによって開かれたリソースは、親によって事前に知られている必要がありますか? または、いくつかのバージョンを実行できますか

ps -ef | grep <child pid> | xargs kill -9  (you get the idea...)

現在、OOM の強制終了後にクリーンアップを行わないと、多くの子プロセスやその他のものが残され、タスクが再試行されたときに状況が悪化し、すぐにサーバーに到達できなくなります。

最後に、次のことを行うだけで十分ですか。

kill -9 <process id> 

この正確な状況をテストするには?

どうもありがとう!

4

2 に答える 2