在一次编译OTA差分包时,服务器弹出了这样的提示
WARNING: failure running ['imgdiff', '-z']:
imgdiff: /tmp/imgdiff-patch-eC6LzM: Too many open files
patching failed! system/app/WhatsApp.apk
可以看出patch制作失败了,并提示了是在哪个应用patching时failed,whatsapp,当时升级的WhatsApp是从
version 2.17.254 升级到version 2.17.427,一开始怀疑是版本差异太大导致的,拿了几个临近版本的WhatsApp
做差分包,发现有几个版本升级有问题,而有些却没有,比如充2.17.247到2.18.8,看来不能从版本号差异大小看
版本具体差异大小啊。
在网上查了以下解决方案,特此记录,
1、sudo vim /etc/security/limits.conf
在limits.conf加上
* soft noproc 10240
* hard noproc 10240
* soft nofile 10240
* hard nofile 10240
2、在/etc/profile 的最后面添加ulimit -s unlimited
source /etc/profile
使设置生效;
3、通过ulimit -n查看是否生效,如果配置成功,显示的是10240,不成功仍是1024
4、如仍不生效,可尝试切换到ROOT账户再试一下;
如上10240值可自己设置,默认为1024