명령에 대한 Bash 세션 오류: "포크: 메모리를 할당할 수 없습니다"

명령에 대한 Bash 세션 오류: "포크: 메모리를 할당할 수 없습니다"

원격 서버에 bash 세션이 열려 있는데 문제가 있습니다. "test" 디렉터리를 만들고 그 안의 파일을 터치했습니다 touch 1 2 3 4 5. 그런 다음 디렉토리 복사를 시도했지만 cp test/ test2/중단되었습니다. ^C로 종료하세요. 디렉토리로 가서 시도해 보세요 cp 1 2.

그런 다음 ls를 실행하려고 하면 다음 오류가 발생합니다.

-bash: fork: Cannot allocate memory

이제 아직 사용 가능한 메모리가 있다는 것을 알고 있습니다. 다른 터미널에서 로그인하면 기본적으로 내 홈 디렉터리가 사용됩니다. touch 1그리고 cp 1 2그것은 멈춘다. 할 수는 ls있지만 ...

루트로 로그인하고 cp 1 2동일한 디렉터리에서 로그인을 시도하면 작동합니다. 루트 계정에는 문제가 없습니다.

많은 여유 메모리:

#free -h
              total        used        free      shared  buff/cache   available
Mem:           188G         87G        3.4G        1.8G         97G        3.3G
Swap:          3.9G        3.8G        140M

할당 오류가 발생하는 테스트를 위해 아직 다른 SSH 세션이 열려 있습니다. 무슨 일이야?

업데이트 1

터미널에서 실행을 시도했는데 cp 1 2여전히 명령에서 실행할 수 있지만 작동이 멈추고 top -b | grep -w bash루트 계정에서 실행됩니다. 명령 cp이 표시되지 않습니다.

메모리 할당 문제를 보고한 다른 터미널이 이제 응답 ls하지만 여전히 정지됩니다 cp 1 2.

업데이트 2

문제는 공유 .bashrc의 잘못된 구성입니다.

function cp() {
   cp --preserve=all --no-dereference $@
}

대신 다음과 같이 설정해야 합니다.

alias cp='cp -adR'

관련 정보