@RedFree
2017-07-14T02:29:31.000000Z
字数 1958
阅读 522
扫描器
编码规范
插件在集群上以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 sys
import time
import json
import signal
class Test(object):
def __init__(self):
try:
signal.signal(signal.SIGTERM, self.on_process_killed) # 软件终止信号
signal.signal(signal.SIGINT, self.on_process_killed) # Ctrl + C
except 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) > 测试+复测 > 报告 > 部署(线上)