我機子新裝 zsh 沒多久,突然 ssh 登錄非常緩慢,沒有 5 分鐘進不去。進去就報錯:
/root/.zshrc:101: fork failed: cannot allocate memory
內存溢出。以為是 101 行有問題,vi 一下,結果卡的差點當機! ls 查看,. zshrc 文件竟然有 240MB! WTF?我記得新安裝時就只有幾十 KB。這又不是 zshrc_history,還會長大?
截取部分内容出来看看,估计是某个程序 /插件的 bug 导致一直往里面写内容。
没必要 vi 打开嘛。head -300 , tail -n 300 ~/. zshrc
同意是插件 bug
我之前就是 zsh 越用越慢后来转投了 fish 这个大坑.....(自己改的 bash script 已经不知道多少了.......但是 fish 真的快啊..)
还原成之前的然后设个权限吧= =
这个要设置权限恐怕只有 400 了。还是找找哪个插件坏了比较好。
当然,我觉得其实 bash 多靠谱,fish 多漂亮,为啥这么多喜欢 zsh 的
一群同事推薦,我就裝了一個,開始用起來還行,不過出了這一檔子事,有點不敢用了。生產服務器。權限給個只讀不行?
沒裝插件。oh my zsh 都沒裝
那可遭了罪了。
趁着还没怎么用,先试试 fish 吧。
另外,我一般服务器上只用 bash,本地才乱七八糟各种 shell 都试试
这感觉是服务器非法断电导致文件系统出错
這可沒有。用著用著 ssh 中斷,再登錄就慢的一批
除了開頭的幾十行,後面的全是 key bind,總共加起來幾百萬行。這讀取能不卡嗎
我也用 fish,挺好的,唯一的缺点就是不兼容 POSIX
这个还蛮奇怪的。。。我服务器上 zsh 已经稳定运行 8 年了。。。
而且中间还加了 omzhs
工作环境没有那么长时间的用。。。一 ~ 二年一换本子
查下哪个进程写.Zshrc 按道理说配置一般只会读 除非出错了
全是 key bind
查正在运行的进程 写操作啊 这样看不出什么来 我对 zsh 也不熟
周期的 lsof 这个文件看看什么进程在修改?
恢復默認後,好像正常了。再用段時間再說
用 zsh,表示没有遇到过着情况,几个 zsh 的文件都不到 10Kb
zsh 你长大了,已经是一个成熟的终端了,应该学会自己跑命令。
狗頭
楼上 2333 ~
今天我刚把 zsh 换成 fish
.zshrc 你是个成熟的文件了 该学会自己配东西了
搜了一下你图片中的内容,笑死我了。见此链接的方法二,你这明显是配置错误,每次启动 Shell 都把同样的按键映射写入 .zshrc。
https://anjia0532.github.io/2017/09/10/zsh-home-end-keypad-not-work/