RLIMIT_NOFILE을 RLIM_INFINITY로 설정할 수 있습니까?

RLIMIT_NOFILE을 RLIM_INFINITY로 설정할 수 있습니까?

setrlimit(내 C++ 코드 내에서 )를 사용하여 RLIMIT_NOFILEto 를 설정하려고 시도했지만 RLIM_INFINITY( 다음 에 & 를 getrlimit설정하고 ) "작업이 허용되지 않음" 오류가 발생합니다. 코드는 루트로 실행됩니다.rlim_currlim_maxRLIM_INFINITYsetrlimit()

RLIM_INFINITY로 설정하는 것도 가능합니까 RLIMIT_NOFILE?

답변1

RLIMIT_NOFILE는 에서 정의한 최대값으로 제한되며 /proc/sys/fs/nr_open그 이상으로 설정하려고 하면 가 발생합니다 EPERM. 짧은 기간 동안(커널 2.6.28의 경우) 로 설정할 수 있었지만 RLIM_INFINITY이로 인해 일부 프로그램에서 엄청난 성능 문제가 발생했습니다.되돌리기 커밋자세한 내용은.

이것은 문서화되어 있습니다해당 EPERM항목man setrlimit, 그리고/proc/sys/fs/nr_open에 대한 설명man 5 proc.

관련 정보