当前位置: 首页 > 技术教程 > 正文
流量卡

青龙面板ck过多执行任务报 Argument list too long错误解决方案

游魂 发表于2021年11月26日 9:58

解决 青龙面板中存放的cookie数目过多(如超过45)时,会报 Argument list too long 而无法正常执行部分脚本的问题

问题排查

task_before.sh在shell环境中设置了一个很大的环境变量,其大小大概为 总ck数目 未被屏蔽的ck数目 单个互助码的大小。

部分活动的互助码大小约为40,此时如果有80个ck,且全部启用,则大小将是 80 80 40 = 256000。

而系统默认的参数列表大小(包含环境变量)为 $(getconf ARG_MAX) = 131072,可见远远超出该值。因此后续调用任何系统命令,都将会报出 Argument list too long 而导致后续流程无法正常进行。

现有解决方案

昨晚搜了下现有的做法,基本都是分多个青龙容器,每个保持在45个(这样大小约为81000),确保不会报错。

这个方法很简洁,但是会带来维护上的麻烦,本来只要部署一套qinglong容器,现在需要维护多套,比较费心力。

新的解决思路

现在的问题是shell中设置的env太大了,导致其他流程不能正常执行。那么如果我把设置env的流程挪到nodejs中,不再经由shell的环境,那么shell中执行的其他命令就不会报错了。

有了思路后,问题就简单了。这下只需要把原先task_before.js中执行的解析互助码文件和转换后放入shell环境变量的流程换到nodejs中即可,这样这几十MB的环境变量就不再是作为参数传入了。

最终方案

复制下方 code.sh、task_before.sh 到/ql/config目录

复制下方 jdCookie.js 到 /ql/deps 目录,确保更新脚本库后,魔改版本会被覆盖过去

注意把映射目录增加 ./data/deps:/ql/deps

此处内容已隐藏,评论 后刷新即可查看

全文完
本文标签: 青龙面板青龙京东代挂xdd-plus傻妞sillyGirl京东代挂机器人nvjdcNolanArgumentlisttoolong
本文标题: 青龙面板ck过多执行任务报 Argument list too long错误解决方案
本文链接: https://www.iyouhun.com/m/?post=204

〓 随机文章推荐

共有9825阅 / 46我要评论
  1. 46楼
    333帮
  2. 145楼
    666666666666666666666666厉害
  3. Gee44楼
    6666非常版
  4. 哈哈43楼
    666666非常棒
  5. 关掉42楼
    dfsfsdfdsfdf能符合规范
  6. 231241楼
    不错
  7. 11140楼
    不错
  8. 待定39楼
    不错
  9. 38楼
    henhaohenhao按时打发点
  10. yibi37楼
    测试
1 2 3 4 5

发表你的评论吧返回顶部

!评论内容需包含中文

请勾选本项再提交评论