OS X Yosemite에서 스택 제한 늘리기


12

OS X 10.10에서 터미널 응용 프로그램에 사용할 수있는 스택 크기를 반드시 영구적으로 늘릴 수있는 방법을 찾고 있습니다.

나는 특히 여기에 인터넷에서, 스택 제한을 포함하여 환경 변수를 변경하고 관련 질문을 많이 (예를 들어, 거기에 알 이 하나 )하지만 내가 찾은 제안 된 솔루션 중 누구도 나를 위해 일을 보인다는.

가장 나는의 나가 launchctl사용 sudo launchctl limit stack 67104768 6710476867104768 기본 하드 한계입니다. launchctl더 높은 한계를 가진 다른 명령은 효과가없는 것 같습니다.

그런 다음이 sysctl있지만 맨 페이지 kern.stack_size는 변경할 수 없다고 보고 합니다.

어딘가에 이미 제안 된 솔루션을 간과하지 않았기를 바랍니다. 어떤 도움이라도 대단히 감사하겠습니다!

편집 : OCaml 네이티브 컴파일러 인 ocamlopt의 버그로 보이는 특정 문제를 처리하는 스택 오버플로를 해결하기 위해 스택 제한을 늘리고 싶습니다. 지금 버그 보고서를 찾을 수 없습니다.


1
요세미티의 스택 제한을 늘리는 방법을 명시 적으로 묻고 있습니까?

1
예. 텍스트에서 명확하지 않은 경우 죄송합니다.
Christopher

1
superuser.com/questions/836883/ 에서 도움이 될만한 질문을 찾았습니다 ... 첫 번째 답변에는 maxfiles 한도가 표시됩니다. 스택 제한으로 변경하고 limit.stack.plistlaunchDaemons로 저장 하시겠습니까?
TheBro21

1
감사! 방금 시도했지만 운이 없습니다.
Christopher

1
확인. 그리고 실제로 제한 파일을 찾았습니까? 없는 경우. 나는 그것을 찾고 문제를 해결하는 데 시간을 할애합니다. 그리고 이전에 지시 한 plist를 구성하십시오.
TheBro21

답변:


5

스택 크기를 늘리는 한 가지 방법은 다음을 사용하는 것입니다 ulimit.

shell> ulimit -s new_size_in_kb

OSX에서 스택이 얼마나 클 수 있는지에 대한 하드 한계가 있고 그 한계는 65532kb로 나타납니다.

shell> ulimit -s 65533
ulimit: value exceeds hard limit
shell> ulimit -s 65532
shell> ulimit -a | grep stack
-s: stack size (kbytes)             65532

또한 ulimit -s일시적이며 터미널 세션이 종료되면 재설정됩니다.

모든 터미널 세션에 대해 스택을 늘리려면 ulimit -s명령을 .zshrc 또는 이와 동등한 것으로 넣을 수 있습니다.


고마워요! 불행히도이 특별한 경우에는 OSX의 하드 한계를 넘어서 스택 크기를 늘려야 하며이 한계를 증가시키는 솔루션을 찾고 싶었습니다.
Christopher

예 : 또한이 ulimit -s unlimited65532 이하로 제한 될 것으로 보인다 : ulimit -a | grep stack제공-s: stack size (kbytes) 65532
fpierfed
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.