- ~이다.
maxfiles 256
...에서 launchctl limit maxfiles
프로세스 당 한도?
예. launchctl limit maxfiles
프로세스 별 소프트 및 하드 한계를 인쇄합니다. getrlimit(2)
, 그의 man 페이지가 말한다 :
A resource limit is specified as a soft limit and a hard limit. When a
soft limit is exceeded a process may receive a signal (for example, if
the cpu time or file size is exceeded), but it will be allowed to con-
tinue execution until it reaches the hard limit (or modifies its resource
limit).
getrlimit(2)
분명히 어디 쉘 내장 명령입니다 ulimit
그것의 정보를 얻는다.
- 왜 그래?
launchctl limit maxfiles
~과 다르다 kern.maxfiles
과 kern.maxfilesperproc
?
launchctl limit maxfiles
launchd가 프로세스에 부과하는 프로세스 별 소프트 및 하드 제한을보고합니다. launchd는 명백히 256의 소프트 한도와 "무제한"하드 한도를 부과합니다. kern.maxfilesperproc
커널이 아니라 launchd
.
kern.maxfiles
전체 시스템에서 전체 파일 설명자의 한계입니다. 모든 프로세스에 대한 모든 열린 파일과 커널이 자신의 목적을 위해 열어 놓은 모든 파일의 합계.
- 어느 한도 (
maxfiles 256
또는 kern.maxfilesperproc: 10240
)은 응용 프로그램에서 사용자가 수동으로 시작한 응용 프로그램에 적용됩니까?
GUI에서 앱을 실행하는 사용자가 수동으로 시작한 응용 프로그램은 launchd 부과 된 소프트 한도 인 256과 "무제한"하드 한도를 상속하므로 하드 한도가 효과적으로 적용됩니다. kern.maxfilesperproc
, 시스템에 충분한 파일 디스크립터가 있다고 가정하면 전체 시스템이 히트하기 전에 앱이 제한을 초과 할 수 있습니다 kern.maxfiles
.
프로세스 (앱)는 시스템 호출을 사용하여 실행 중일 때 소프트 한계를 조정할 수도 있습니다. 그래서 256의 소프트 한도는 시작시의 기본값이며, 앱 / 프로세스는 즉시 자신의 소프트 한도를 늘릴 수 있습니다.