gearman 사용자로 프로세스를 실행 중이며이 open files
불쾌한 오류가 발생하지 않도록 변경하고 싶습니다 .
ERROR 2014-09-12 17 : 49 : 14.000000 [main] accept (너무 많은 열린 파일)-> libgearman-server / gearmand.cc : 788
Ubuntu에서 다른 사용자로 ulimit를 실행하고 열린 파일을 변경하려면 어떻게해야합니까? 현재 기어 맨으로 로그인하지 않았지만 루트 액세스 권한이 있습니다. 나는 이것을 시도했다 :
su gearman --shell /bin/bash --command "ulimit -n"
여기에 권장 되지만 아무것도 출력되지 않습니다.
$ su gearman --shell /bin/bash --command "ulimit -n"
Password:
$
답변
Google 검색 중에 우연히 발견하고 Tony 의 의견이 유용하다는 것을 발견했기 때문에 이것을 다시 방문하십시오 . 그들이 시작한 프로세스를 찾은 다음를 확인하십시오 proc/${id}/limits
.
구체적으로 특별히:
$ ps -u username # look up processes owned by user
$ sudo grep 'open files' /proc/${id}/limits # find "Max open files" line for process ID
답변
ulimit
명령 을 실행하면 실행 중인 프로세스 ulimit
(쉘) 및 모든 하위 프로세스 에만 영향을줍니다 . 따라서을 실행할 때 bash --command "ulimit -n"
해당 bash 인스턴스의 열린 파일 수에만 영향을 미치고 bash가 종료되므로 향후 프로세스에는 영향을 미치지 않습니다.
따라서 실제 프로세스의 열린 파일 제한을 늘리기 위해 원하는 것을 달성하려면 limits.conf
특정 기어 맨 사용자의 열린 파일 제한을 높이기 위해 편집 하는 것이 더 합리적 입니다.
답변
를 사용해보십시오 su - <USERNAME> -c ulimit' -Hn'
. 방금 CEntOS 7에서 테스트했으며 작동합니다.