'런치 런 제한'과 'ulimit`의 관계는 무엇입니까?


11

시스템 시작 파일 / 쉘 시작 스크립트에는 ulimit 구성이 없습니다.

ulimit -a 보여줍니다 :

-u: processes                       1064
-n: file descriptors                256

launchctl limit 보여줍니다 :

maxproc     2048           2048           
maxfiles    2048           2048

launchctl의 한계가 쉘의 ulimit 출력과 일치해야한다는 것을 모호하게 기억합니다. 잘못 될 수 있습니다.

lauchctl의 한계와 ulimit 사이에 어떤 관계가 있습니까?


명령 매뉴얼 페이지에서 만족스러운 답변을 얻지 못했습니까?
Andrew U.

@AndrewU. launchctl 매뉴얼 페이지는 제한을 언급하지 않으며, ulimit 매뉴얼 페이지는 launchctl을 시작하거나 시작하지 않았습니다.
Howard

답변:


10

쉘에서 ulimit는 "쉘과 쉘이 시작한 프로세스에 사용 가능한 자원에 대한 제어"를 제공합니다 (참조 man bash). 따라서 쉘과 해당 하위 항목에만 적용됩니다. 실행 한도는 해당 제한 및 관리 프로세스와 관련이 있습니다. 둘은 별개입니다.

개별 프로그램은 표준 C 라이브러리 루틴을 호출하여 자신의 자원 제한을 설정할 수 있습니다 ulimit()또는 getrlimit()setrlimit(). 프로세스가 수퍼 유저로 실행되고 있지 않으면 특정 리소스 제한을 높일 수 없습니다.

실용적인 예로서, 나는 큰 소프트웨어 프로젝트를 디버깅하고 열려있는 파일 수에 대한 쉘의 기본 제한은 충분하지 않습니다. 내 .bashrc 파일에는 다음이 있습니다.

# Increase the upper limit on the number of open files:
ulimit -n 1024

이제 내 디버거는 필요한 모든 파일을 열 수 없다고 불평하지 않습니다. 분명히 이것은 발사에 영향을 미치지 않아야합니다.


1
좀 더 자세히 설명하자면 : 기본 ulimit 설정은 launchctl limit; 사용자가 ulimit 숫자를 변경할 수 있지만 launchctl limit하드 한계를 초과 할 수는 없습니다 .
Howard

이것은 재부팅시 재설정됩니다
engineerDave
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.