実行するためにスタックが8192kbに制限されてはならないいくつかの古いコードがあります。私はこの仕事に慣れています/etc/security/limits.conf
* stack hard unlimited
* stack soft unlimited
ただし、bashシェルを持つローカルアカウントを使用するRHEL 7.9では、操作を実行するとulimit -s
まだ応答します8192
。それではLimits.confを修正しても効果がないようです。
Bashシェルがある端末ウィンドウでulimit -s unlimited
コードを最初に実行してから実行すると、コードが正しく実行されます。
RHEL 7.9のすべてのユーザーに対してスタックサイズをグローバルに無制限に設定する最善の方法は何ですか?
私が何かを見逃しているのか、ulimit
同じこと/etc/security/limits.conf
なのか?
答え1
使用限界値制限を設定するコマンドは、現在作成されているプロセス(シェル)とその子プロセスの制限のみを変更します。
たとえば、次のような場合:
#With root
ulimit -s unlimited
#Switch to other user
su - <user>
ulimit -s ## unlimited ; because this still be a child process
しかし、そうするなら:
#With root
ulimit -s unlimited
#Logout
logout
#Login as the other user then execute the following
ulimit -s ## 8192
使用/etc/security/limits.conf永久に設定されますが、適用するには再度ログイン(新しいセッション)する必要があります。
スタックを設定した場合/etc/security/limits.conf 無効です。上書きされていることを確認してください。/etc/security/limits.d/または、プロファイル ~/.bash_profile ~/.bashrc を見てください。
上記の項目が/で利用可能であることを確認してください。etc/pam.d/パスワードの確認そして/etc/pam.d/system-authそれでは確かですか?/etc/security/limits.conf荷を積んだ:
session requires pam_limits.so