특정 프로세스에 대해 "최대 열린 파일" 소프트 및 하드 제한을 설정하는 방법은 무엇입니까?

특정 프로세스에 대해 "최대 열린 파일" 소프트 및 하드 제한을 설정하는 방법은 무엇입니까?

이 명령을 사용하여 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_numberinit 스크립트에서 제공할 수 있습니다. 이미 실행 중인 프로세스이고 다시 시작할 수 없는 경우 다음을 사용하세요.prlimit John1024가 제안한 것처럼.

관련 정보