많은 소켓 (약 700 개 소켓)을 생성하는 PERL 스크립트가 있으며 그 소켓을 사용합니다. 그 후, system(...)
명령을 사용하여 더 많은 소켓 (예 : 800 정도)을 여는 다른 응용 프로그램을 실행하지만 프로세스 당 소켓 수의 한계가 1024
이기 때문에 제한을 초과하고에서 예상 된 데이터를 얻지 못합니다. 소켓 번호는 1024 이상입니다.자식 프로세스의 원치 않는 오픈 소켓
지금 내 질문은 이것이다 :
- 시스템 명령이 상속이 열려있는 모든 파일 디스크립터/소켓 시작 응용 프로그램을합니까?
- 위의 질문에 대한 대답이 예인 경우 다른 응용 프로그램을 시작하여 시작된 응용 프로그램이 파일 설명자를 상속받지 못하게하는 다른 방법이 있습니까?
- 2. 대답이 아니오이면 자식 프로세스에서 상속 된 모든 파일 설명자를 닫는 방법이 있습니까?
UNIX와 비슷한 시스템이라고 가정 할 때 사용자 별 fd 제한은 무엇입니까? – pilcrow
사용자 당 제한이 있습니까? 나는 그걸 모른다 ... 프로세스 당 한도가 1024로 설정되어 있으므로 (0에서 1023까지 작동하므로 1024가 실패 함) ... – mtahmed
사용자 프로세스의 리소스 제한이 체계. system() 전에'$^F'를 인쇄 할 수 있습니까? 현재 한계를보기 위해'system ('ulimit -n; exec your_command ...') 시도해 주시겠습니까? – pilcrow