You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snakemake 9.6.3(SLURM集群)作业状态查询替代方案咨询

针对Snakemake 9.6.3 + SLURM的作业状态追踪方案

1. 获取集群作业状态的替代方法

  • 用SLURM原生命令sacct批量查询:Snakemake提交的SLURM作业默认以snakemake-为前缀命名,可通过以下命令过滤并获取所有相关作业的状态:
    sacct -n -o JobID,JobName,State,ExitCode | grep snakemake-
    
    输出结果包含作业ID、名称、状态及退出码,覆盖所有已提交作业的状态信息。
  • 生成Snakemake内置报告:运行工作流时添加--report workflow_report.html参数,工作流结束后会生成HTML格式的报告,其中包含每个规则对应作业的状态、运行时长、资源消耗等全局信息,无需额外脚本即可统一查看。

2. 追踪每个作业的成败情况

  • 配置规则级日志:在Snakefile中为每个规则指定log字段,将作业的标准输出和错误输出定向到指定文件,示例如下:
    rule process_data:
        input: "raw/data.txt"
        output: "processed/data.txt"
        log: "logs/process_data.log"
        shell: "python scripts/process.py {input} {output}"
    
    作业失败时,对应日志文件会记录具体错误信息,直接查看即可定位问题。
  • 实时控制台输出监控:运行Snakemake时添加--verbose或--printshellcmds参数,会实时输出每个作业的执行命令和状态变化,作业失败时会立即在控制台打印错误堆栈与退出原因。
  • 通过SLURM作业ID单独查询:Snakemake提交作业时会在控制台输出作业ID(格式如Submitted job 123456 to SLURM cluster),可直接用sacct -j <job_id>查询单个作业的详细状态:State字段为COMPLETED表示成功,FAILED/NODE_FAIL等表示失败,ExitCode字段会显示具体退出码。
  • 自定义批量检查脚本:若需批量追踪所有作业,可编写简单shell脚本,从Snakemake运行日志中提取作业ID后批量查询状态,示例:
    # 从Snakemake运行日志提取作业ID
    grep "Submitted job" snakemake_run.log | awk '{print $4}' > job_ids.txt
    # 循环查询每个作业状态
    while read job_id; do
        sacct -n -j $job_id -o JobID,State,ExitCode
    done < job_ids.txt
    

内容的提问来源于stack exchange,提问作者jeje

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:02:42