/etc/security/limits.conf内に次のものがあります(*にはルートが含まれないため、ルートを個別に指定しました)。
user2-コア無制限 *-コア0 root-コア0 *-rss 512000 root-rss 512000 * --nproc 100 root --nproc 100 * --maxlogins 1 root --maxlogins 1
User2(./ programname)としてプログラムを実行しましたが、/ proc/3498/limitsはコアが無効になっていると言っています。
制限ソフト制限ハード制限単位 最大cpu時間無制限無制限秒 最大ファイルサイズ無制限無制限バイト 最大データサイズ無制限無制限バイト 最大スタックサイズ8388608無制限バイト 最大コアファイルサイズ00バイト 最大常駐セット524288000524288000バイト 最大プロセス100100プロセス 最大オープンファイル10241024ファイル 最大ロックメモリ6553665536バイト 最大アドレススペース無制限無制限バイト 最大ファイルロック無制限無制限のロック 最大保留信号1400114001信号 最大メッセージキューサイズ819200819200バイト 最大ニース優先度00 最大リアルタイム優先度00 最大リアルタイムタイムアウト無制限無制限us
Ulimit-Saとulimit-Haの両方が、コアが無効になっていることを出力します。
コアファイルサイズ(ブロック、-c)0 データセグメントサイズ(kバイト、-d)無制限 スケジューリング優先度(-e)0 ファイルサイズ(ブロック、-f)無制限 保留中の信号(-i)14001 最大ロックメモリ(kbytes、-l)64 最大メモリサイズ(kbytes、-m)512000 ファイルを開く(-n)1024 パイプサイズ(512バイト、-p)8 POSIXメッセージキュー(バイト、-q)819200 リアルタイム優先度( -r)0 スタックサイズ(kバイト、-s)無制限 cpu時間(秒、-t)無制限 最大ユーザープロセス(-u)100 仮想メモリ(kバイト、-v)無制限 ファイルロック(-x)無制限
コアが無効になっているのはなぜですか?
User2のシェルをulimit -c 0
で設定しているプロファイルがどこかにある可能性はありますか? ulimit -c
なしでbashを開始し、開始するプロセスを確認すると、次のように表示されます。
Limit Soft Limit Hard Limit Units
Max core file size 0 unlimited bytes
しかし、ulimit -c 0
してプロセスを実行すると、次のように表示されます。
Limit Soft Limit Hard Limit Units
Max core file size 0 0 bytes
User2のShellrcファイルの最後にulimit -c unlimited
を設定してみましたか?
次の順序を試してください。
* - core 0
user2 - core unlimited
root - core 0
少なくとも一部の設定では、limits.confで順序が重要になります。