원격 서버에 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'