ulimit
외부 명령이 아닌 쉘 내장입니다. 쉘 프로세스 자체에서 작동하기 때문에 내장 cd
디렉토리가 필요합니다. 현재 디렉토리와 같은 한계는 특정 프로세스의 특성입니다.
sudo bash -c 'ulimit -n 4096'
작동하지만 bash 프로세스의 한계를 변경하여 sudo
도움이되지는 않습니다.
각 한계에는 하드 한계와 소프트 한계의 두 가지 값이 있습니다. 루트 만이 하드 한계를 높일 수 있습니다. 누구든지 하드 한계를 낮출 수 있으며, 소프트 한계는 하드 한계보다 높을 수 없다는 제약 조건만으로 어느 방향 으로든 수정할 수 있습니다. 소프트 한계는 중요한 실제 값입니다.
따라서 모든 프로세스에 열린 파일에 대한 최소 한계가 4096 이상이되도록 준비해야합니다. 소프트 한계를 1024로 유지할 수 있습니다. 많은 파일이 필요한 프로세스를 시작하기 전에 소프트 한계를 높이십시오. 에서 /etc/security/limits.conf
, 라인을 추가
paislee hard nofile 4096
paislee soft nofile 1024
여기서 paislee
프로세스를 실행하려는 사용자의 이름입니다. 더 높은 한계를 원하는 프로세스를 시작하는 쉘에서 다음을 실행하십시오.
ulimit -Sn unlimited
소프트 한계를 하드 한계로 올립니다.
ulimit 4096
작동하지 않습니다. 나는 옳다고 생각-n
합니다. 개념 증명으로 내가 먼저sudo su - root
(그러나 루트에 대해서만 변경) 작동합니다.