@RedFree
2017-07-14T02:29:31.000000Z
字数 1958
阅读 586
扫描器 编码规范
插件在集群上以subprocess.popen的方式执行,通过输入输出进行交互,运行状态有如下几种:
0 成功非0 失败
| 状态码 | 含义 | 常见原因 | 处理方案 | 负责人 |
| 0 | 成功 | - | - | - |
| 1 | 未归类错误 | 1.根据实际情况处理 | - | |
| 2 | python脚本不存在 | 1.部署问题 | 1.修复部署问题 | RedFree |
| 100 | 插件执行超时 | 1.插件编写问题 2.网络问题 3.目标服务器慢 4.目标封禁扫描集群 |
1.本地看是否能够在单机复现,是的话优化脚本 2.到扫描服务器看是否可以复现,判断是否网络问题 |
插件作者;插件运营负责人 |
| 101 | 插件有未处理异常 | 1.插件编写问题 | 1.捕获异常 | 插件作者;插件运营负责人 |
| 102 | 输出无法json序列化 | 1.插件编写问题,打印了额外信息 | 1.去除额外信息 | 插件作者;插件运营负责人 |
| 103 | 子进程执行错误 | 1.内存问题,导致插件无法启动 | 1.根据实际情况处理 | RedFree |
| 104 | 框架错误,worker 处理subtask时,出现异常 | 1.执行框架问题 | 1.修复框架 | RedFree |
#!/usr/bin/env python# -*- coding:utf-8 -*-import sysimport timeimport jsonimport signalclass Test(object):def __init__(self):try:signal.signal(signal.SIGTERM, self.on_process_killed) # 软件终止信号signal.signal(signal.SIGINT, self.on_process_killed) # Ctrl + Cexcept Exception, e:print(str(e))self.result = ""def do_some(self):for x in range(1, 100):self.result = self.result + "%s" % str(x)time.sleep(1)def on_process_killed(self, s, e):print json.dumps(self.result)sys.exit(100)if __name__ == "__main__":cls = Test()cls.do_some()
Master > 项目需求 > [讨论] > 项目负责人 > 计划 > [讨论] > 代码 > [review(项目组)] > 部署(Beta) > 测试+复测 > 报告 > 部署(线上)