rhel 7은 스택 크기를 무제한으로 설정합니다.

rhel 7은 스택 크기를 무제한으로 설정합니다.

실행하기 위해 스택이 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

관련 정보