포크 : 재시도 : 리소스를 일시적으로 사용할 수 없음

내 서버에 연결하는 동안

-bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable 

그리고 다음 명령도 시도해 보면 결과는 같습니다.

-bash-4.1$ df -h -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable -bash-4.1$ -bash-4.1$ ls -lrth -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Interrupted system call -bash-4.1$ -bash-4.1$ ps -aef | grep `pwd` -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable -bash-4.1$ 

왜 이런 일이 발생합니까? 어떻게 해결할 수 있나요?

댓글

  • 스왑이 과부하 된 것 같습니다 (/ tmp 파일 시스템이 가득 찼을 수 있음)
  • ulimit -a, 일부 프로세스 제한에 도달했을 수 있습니다.

답변

이것은 리소스 제한 때문일 수 있습니다. 서버 자체 (또는) 사용자 계정에 고유합니다. 셸의 제한은 ulimit -a를 통해 확인할 수 있습니다. Esp는 ulimit -u 최대 사용자 프로세스를 확인합니다. 최대 프로세스에 도달 한 경우 포크는 새 프로세스를 만들 수 없으며 해당 오류로 실패합니다. 스왑 / 메모리 리소스 문제 일 수도 있습니다.

답변

포크 : 리소스를 일시적으로 사용할 수 없음

오류는 현재 셸 리소스가 제한되어 있음을 의미합니다 (ulimit -a). 따라서 다른 셸에서 시도하거나 셸에서 사용할 수있는 리소스를 제어하고 운영 체제에서 만드는 프로세스를 제어하는 ulimit 명령을 사용하여 리소스를 늘릴 수 있습니다.

제한을 늘리려면 다음을 실행하십시오.

ulimit -Sn unlimited && ulimit -Sl unlimited 

소프트 제한을 하드 제한으로 올리거나 :

ulimit -l unlimited ulimit -n 10240 

프로세스의 최대 크기를 무제한으로 설정하고 최대 열린 파일 수를 10240으로 설정합니다.

참조 : help ulimit 자세한 정보.

지속적으로 유지하려면 위의 설정을 시작 rc 파일 (예 : ~/.bashrc)에 추가하세요.


/etc/sysctl.conf (참조 : man sysctl.conf)를 사용하여 커널 제한을 늘릴 수도 있습니다. 예 :

kern.maxprocperuid=1000 kern.maxproc=2000 

댓글

  • 이 오류가 발생하면 " retry "는 res까지 반복적으로 시도 함을 의미합니다. 우리를 사용할 수있게 되었습니까?
  • @DavidB 또는 재시도 했지만 실패했습니다.
  • kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid 및 kernel. maxproc은 Ubuntu에 존재하지 않습니다. 대안은 무엇입니까?

답변

다음 명령을 사용하여 문제를 해결할 수도 있습니다.

yum install psmisc killall -STOP -u user1 killall -KILL -u user1 

여기 user1은 한도를 초과 한 사용자 그룹입니다.

댓글

  • 사용자에게 속한 모든 단일 프로세스를 죽이는 것은 약간의 손길로 보입니다. 또한 해당 yum 명령도 포크 할 수 없습니다.
  • yum 명령은 루트 사용자를 통해 실행되며 다른 서버에서 문제가 발생했다고 가정합니다. 루트보다 사용자
  • 셸이 df를 포크하지 못하면 sudo도 실행하는 데 문제가 있습니다.
  • BOFH 스타일. 좋아요!

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다