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>
この正確な状況をテストするには?
どうもありがとう!