命令上的 Bash 会话错误:“fork:无法分配内存”

命令上的 Bash 会话错误:“fork:无法分配内存”

我有一个向远程服务器打开的 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虽然可以..

以 root 身份登录并尝试cp 1 2从同一目录登录,它可以工作。 root 帐户没有问题。

大量空闲内存:

#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'

相关内容