이것은 우분투 릴리스 12.04 (정확한) 64 비트 커널 리눅스 3.2.0-25 가상에서 발생합니다
사용자에게 허용되는 열린 파일 수를 늘리려 고합니다. 이것은 현재 한계 1024가 충분하지 않은 이클립스 Java 응용 프로그램을위한 것입니다.
지금까지 찾은 게시물에 따르면 줄을 넣을 수 있어야합니다.
/etc/security/limits.conf는 다음과 같습니다 :
soft nofile 4096
hard nofile 4096
모든 사용자에게 허용되는 열린 파일 수를 늘리려면
그러나 그것은 저에게 효과적이지 않으며 문제는 해당 파일과 관련이 없다고 생각합니다.
모든 사용자에 대해 /etc/security/limits.conf의 내용에 관계없이 기본 제한은 1024입니다 (파일을 변경 한 후 재부팅했습니다)
$ ulimit -n
1024
이제 /etc/security/limits.conf의 항목에도 불구하고 나는 그것을 증가시킬 수 없습니다 :
$ ulimit -n 2048
-bash : ulimit : 열린 파일 : 한계를 수정할 수 없습니다 : 작업이 허용되지 않습니다 이상한 부분은 한계를 아래쪽으로 변경할 수는 있지만 위쪽으로 변경할 수는 없다는 것입니다.
$ ulimit -n 800
$ ulimit -n
800
$ ulimit -n 900
-bash: ulimit: open files: cannot modify limit: Operation not permitted
루트로서, 그 한계를 내가 원하는대로 위 또는 아래로 변경할 수 있습니다. / proc / sys / fs / file-max의 시스템 전체 한계에 대해서는 신경 쓰지 않는 것 같습니다.
# cat /proc/sys/fs/file-max
188897
# ulimit -n 188898
# ulimit -n
188898
그러나 일식을 루트로 실행하더라도 "너무 많은 파일 열기"예외로 인해 응용 프로그램이 여전히 충돌합니다!
지금까지 루트가 아닌 사용자의 열린 파일 제한을 늘리는 방법을 찾지 못했습니다.
어떻게하면 제대로해야합니까? 다른 게시물을 보았지만 운이 없습니다!
/etc/security/limits.conf
로그 아웃 한 다음 다시 로그인해야 새로운 최대 제한을 사용할 수 있습니다. 나는 이것을ulimit -Hs
했고, 방금 1000000으로 올렸을 때 여전히 1000을 표시 하여 당황했습니다 ! 그런 다음 로그 아웃했다가 다시 로그인하면 ulimit에 새로운 금액이 표시됩니다.