私はこれに頭をぶつけています、そしてなぜそれが機能しないのか理解できません。私は誰かがこれに光を当てることができるか、またはそれを失敗して、調査の道についていくつかの提案をしてくれることを願っています。
wls81
ユーザーのオープンファイル制限を増やすことが望ましいRed Hat 7.3システム(質問しないでください)を持っています。自分ではコントロールできないと思っていたのですが、変更が必要なユーザーだけに問題があるように見えてきました。 /etc/security/limits.conf
に次の行を追加しました。
wls81 soft nofile 10100
wls81 hard nofile 10240
madhatta soft nofile 10100
madhatta hard nofile 10240
pam_limits.so
は、私が知る限り、適切に呼び出されています。
[madhatta@server madhatta]$ Sudo grep limits /etc/pam.d/*
/etc/pam.d/login:session required /lib/security/pam_limits.so
/etc/pam.d/sshd:session required /lib/security/pam_limits.so
/etc/pam.d/su:session required /lib/security/pam_limits.so
/etc/pam.d/system-auth:session required /lib/security/pam_limits.so
自分のようにSSHで接続すると、新しいソフト制限が適用され、ハード制限まで増やすことができます。
desktop> ssh server
Last login: Thu May 10 13:20:13 2012 from a.b.c.d
[madhatta@server madhatta]$ ulimit -n
10100
[madhatta@server madhatta]$ ulimit -n 10200
[madhatta@server madhatta]$ ulimit -n
10200
[madhatta@server madhatta]$ ulimit -n 10300
bash: ulimit: cannot modify open files limit: Operation not permitted
しかし、wls81
ユーザーとしてsshでログインすると、次のことはできません。
desktop> ssh wls81@server
Last login: Wed May 9 22:29:33 2012 from a.b.c.d
[wls81@server wls81]$ ulimit -n
1024
[wls81@server wls81]$ ulimit -n 10000
bash: ulimit: cannot modify open files limit: Operation not permitted
同じことが各ユーザーにsu -
した場合にも起こります。正直なところ、このユーザーがulimit
sをリセットできない理由がわかりません。誰かアイデアはありますか?
さて、謎は解けました。私がしたとき私はそれを見つけましたsu - wls81
1024の制限を取得しましたが、取得したばかりの場合su wls81
新しい上限を取得しました。 wls81の.bash_profile
が別のスクリプトを呼び出し、次に別のスクリプトがシステム上のまったく異なるユーザーから環境設定スクリプトを呼び出し、ulimit -n 1024
。
その行を削除すると、wls81に新しい制限が適用されます。
カーネルで開いているファイルの最大ファイル記述子を確認し、おそらく設定する必要があるかもしれません。
Sudo systcl fs.file-max
/etc/sysctl.confを編集して、変更を永続的にします。