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

青龙面板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

〓 随机文章推荐

共有9831阅 / 46我要评论
  1. 多大26楼
    顶顶顶顶顶
  2. 哈哈25楼
    红红火火恍恍惚惚
  3. ceshi24楼
    测试
  4. 测试23楼
    看看
  5. 看看
  6. 拒绝了
  7. ibubble20楼
    正好看看
  8. 正需要,谢谢分享.
  9. 12318楼
    看看
  10. 12317楼
    学习
1 2 3 4 5

发表你的评论吧返回顶部

!评论内容需包含中文

请勾选本项再提交评论