シェルで高いメモリ使用量( "-Xmx52g")のJavaプログラムを起動すると、すべてうまくいきます。しかし、CRONで同じコマンドと同じユーザーで同じプログラムを起動すると、数秒後にjava.lang.OutOfMemoryErrorが返されます。OOM CRONを使用していますが、SHELLを使用していません
さらに、ブロックされたJavaプログラムを強制終了しない限り、CRONは何もできません。どのcronjobを起動しなくても、syslogには常に「(CRON)エラー(フォークできません)」というメッセージが表示されます。 javaプログラムを終了した後、新しいcronジョブがすべて正常に機能しています。
この問題はUbuntu 16.04でのみ発生し、古いバージョンはすべてうまく機能しました。これはバグか新しいセキュリティ機能ですか?私はこの問題に関する情報は見つけられなかったので、誰もが助けてくれることを願っています。
はcronのような音自体とその生まれた子供たちの間での共有メモリ制限...おそらくのcgroupの制限がありますか? – davmac
私はあなたが正しいかもしれないと思います。しかし、これはバグか、私が自分自身で解決できなければならない/できないものか?私はカスタマイズしないでそのままの状態でプレーンな16.04 Ubuntuサーバイメージを使用します。 – DOB
暴走するcronジョブがシステムを停止させないように制限が設定されている可能性があります。その制限をどのように設定するかに関しては、システム固有のツールや設定ファイルがあるかどうかはわかりません。おそらく、これはプログラミング上の問題ではなく、実際にはスタックエクスチェンジの話題ではないので、serverfaultについて尋ねるべきでしょう。 – davmac