web-dev-qa-db-ja.com

Linuxでプログラム制限を設定するための/etc/security/limits.conf

/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)無制限

コアが無効になっているのはなぜですか?

3
Flavius Akerele

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を設定してみましたか?

1
Jon Lin

次の順序を試してください。

*          -     core          0
user2      -     core          unlimited
root       -     core          0

少なくとも一部の設定では、limits.confで順序が重要になります。

0
Olli