![특정 프로세스에 대해 "최대 열린 파일" 소프트 및 하드 제한을 설정하는 방법은 무엇입니까?](https://linux55.com/image/6873/%ED%8A%B9%EC%A0%95%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%97%90%20%EB%8C%80%ED%95%B4%20%22%EC%B5%9C%EB%8C%80%20%EC%97%B4%EB%A6%B0%20%ED%8C%8C%EC%9D%BC%22%20%EC%86%8C%ED%94%84%ED%8A%B8%20%EB%B0%8F%20%ED%95%98%EB%93%9C%20%EC%A0%9C%ED%95%9C%EC%9D%84%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이 명령을 사용하여 cat /proc/<pid>/limits
최대 열린 파일 하드 제한과 소프트 제한을 확인했는데 이 값이 어떻게 설정되고 늘리거나 줄일 수 있는지 알고 싶습니다.
이 값이 일부 구성 파일에 설정되어 있습니까?
명령을 시도했지만 ulimit
특정 프로세스에 대한 제한을 설정하는 데 도움이 되지 않았습니다.
# ulimit -n 2048
그런데 아직도 1024가 보여요
# cat /proc/<pid>/limits
..
Max open files 1024 4096 files
..
비슷한 질문을 받았지만 더 나은 답변을 찾을 수 없다는 것을 알고 있습니다.
답변1
패키지가 설치된 경우 이 명령을 사용하여 util-linux
특정 프로세스에 대한 하드 및 소프트 제한을 설정할 수 있습니다. prlimit
명령의 최대 열린 파일 수에 대한 소프트 제한과 하드 제한을 각각 10과 20으로 설정하려면 다음을 command
실행합니다.
prlimit -n10:20 command
명령에 인수를 제공할 수도 있습니다.
prlimit -n10:20 command arg1 arg2 ...
자세한 내용은 을 참조하십시오 man prlimit
.
노트:다른 많은 Unix 명령과 달리 prlimit
옵션과 인수 사이에는 공백이 허용되지 않습니다. 그래서 -n10:20
작동하지만 -n 10:20
작동하지 않습니다.
답변2
데몬 프로세스에 관해 이야기하는 경우 ulimt -n $your_number
init 스크립트에서 제공할 수 있습니다. 이미 실행 중인 프로세스이고 다시 시작할 수 없는 경우 다음을 사용하세요.prlimit
John1024가 제안한 것처럼.