Skip to content

退出码

🚪 snir 进程退出码语义。

snir 遵循 Unix 惯例:成功退出 0,失败退出非零。

退出码

退出码含义
0成功完成
0执行过程出错

退出码与单目标失败的语义需区分:

按退出码类别归类的心智图:

错误处理

scan 命令对常见错误做了美化,给出可操作建议而非原始堆栈:

错误特征美化建议
Could not find node with given id增加超时/延迟,可能反爬或结构不符
timeout增加 --timeout,检查网络
net::ERR_*网络错误,检查可达性/DNS/代理

详见 错误码故障排查

在脚本中使用

bash
if snir scan file -f urls.txt --write-jsonl; then
  echo "✅ 扫描成功"
else
  echo "❌ 扫描失败,退出码 $?"
fi

注意

退出码 ≠ 单目标成败

这是最容易误解的点:

  • 进程退出码:反映 snir 进程整体是否正常结束(参数错、Chrome 找不到等致命错误才非零)
  • 单目标 failed 字段:批量扫描中某个 URL 失败通常不会让进程退出非零,而是记在 results.jsonlfailed=true

→ 脚本里判断"扫没扫好"不能只看 $?必须查 failed 字段

bash
snir scan file -f urls.txt --write-jsonl
# $? 为 0 不代表每个 URL 都成功
jq 'select(.failed == true)' results.jsonl   # 这才是真正的失败列表

下一步

基于 MIT 许可发布