Linuxは、特定のしきい値に達した後に重く長時間実行されるバックグラウンドプロセスを終了しますか?

Linuxは、特定のしきい値に達した後に重く長時間実行されるバックグラウンドプロセスを終了しますか?

非常に長い間実行されている非常に重い(メモリ/ CPU集約型)プロセスを開始すると、しばらくすると、OSはランダムにそのプロセスを終了しますか?
つまり、オペレーティングシステムがバックグラウンドプロセスの実行を停止する制限はありますか?
これらの制限を設定できますか?それらはどこで定義されていますか?

ベストアンサー1

はい、実際にはそのような制限があります。彼らが電話するリソース制限(r限界)。さまざまな制限があります。 CPU時間、メモリ、オープンファイル数など

カーネルは、プロセスが異なる制限を超えると、プロセスに異なるシグナルを送信します。プロセスが正しく反応しない場合は終了します。

各rlimitには2つの値があります。最初は電流制限です。 2番目は最大制限です(設定できる最大制限です)。ルート(より正確にはCAP_SYS_RESOURCE有能なユーザー)のみが最大制限を増やすか、現在の制限を最大制限より大きく設定できます。

制限を操作するgetrlimit()システムコールがあります。setrlimit()

デフォルトでは、ほとんどのリソース制限には大きな値が含まれているため、制限はありません。もちろん、カーネル設計の制限、利用可能なRAM、ディスクの利用可能なスペースなどにより、実質的な制限がある。

おすすめ記事