我有一个向远程服务器打开的 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'