make -j 多核并行编译 导致笔记本过热 自动关机保护

时间:2024-02-22 16:44:08

中午在装着CentOS的笔记本上把 Oneinstack 跑起来然后去上班了,本来等着下班回来用的,回来之后发现是关机状态,环境也没有装好。

查看日志,找不到相关信息,甚至还以为是被入侵了。又试了几遍,每次都自动关机,根本无法安装到最后。

可以肯定,原因是CPU使用率过高,笔记本过热,自动关机保护。

打开 oneinstack/install.sh 看了看,顺着找到 oneinstack/include/php-7.1.sh ,里面有一行

make ZEND_EXTRA_LIBS=\'-liconv\' -j ${THREAD}

一开始不知道make-j参数是干什么用的,找了cpulimit、ulimit 等命令想限制 CPU 使用率,但是效果都不理想,还是自动关机安装失败。

就要放弃的时候,随便搜索了一把 make -j,发现这个参数的作用竟然是 指定CPU核数并行编译!

在 oneinstack/include/check_os.sh 中找到 THREAD 赋值的地方

THREAD=$(grep \'processor\' /proc/cpuinfo | sort -u | wc -l)

改成

THREAD=1

最终 Oneinstack 自动编译成功结束。