虚拟机里面编译mysql connector会导致整个虚拟机卡住
原因:编译某些子模块的时候,make 指定的参数是 -j,这就会将所有cpu都用来编译,导致虚拟机卡死。
解决办法:
mv /usr/bin/make /usr/bin/make.true
然后vi /usr/bin/make,加上这段脚本,相当于伪造了一个make,然后将-j0 或者 -j 参数改成 -j6
#!/bin/bash # 创建一个新的参数数组 new_args=() # 遍历所有传递给脚本的参数 for arg in "$@"; do # 如果参数是 -j0,则替换为 -j6 if [[ "$arg" == "-j0" || "$arg" == "-j" ]]; then new_args+=("-j6") else new_args+=("$arg") fi done # 调用 make.true 命令,并传递修改后的参数 /usr/bin/make.true "${new_args[@]}"
加上可执行权限:chmod +x /usr/bin/make
就可以了
----
保险起见,可以将 nproc 也用类似的做法,伪造一个nproc, 输出一个小于真正核心数的数字
#! /bin/bash echo 8
chmod +x /usr/bin/nproc

浙公网安备 33010602011771号