如何批量取消状态为DependencyNeverSatisfied的作业?
批量取消DependencyNeverSatisfied状态的Slurm作业
当然有高效的批量操作方法!不用手动逐个输入作业ID,你可以结合Slurm的squeue和scancel命令,一行代码就能搞定所有符合条件的待处理作业。
直接执行的批量取消命令
scancel $(squeue -h -t DependencyNeverSatisfied -o "%i")
命令参数解释
让我拆解一下每个部分的作用:
squeue -h -t DependencyNeverSatisfied -o "%i":这部分负责筛选目标作业-h:隐藏表头信息,只返回纯作业ID列表-t DependencyNeverSatisfied:指定筛选状态为DependencyNeverSatisfied的作业-o "%i":设置输出格式为仅作业ID(%i是Slurm的作业ID格式符)
$(...):把squeue的输出结果作为参数传给scancel,实现批量取消
安全验证步骤(可选)
如果你想先确认哪些作业会被取消,避免误操作,可以先单独运行筛选命令查看结果:
squeue -h -t DependencyNeverSatisfied -o "%i"
确认列表无误后,再执行上面的批量取消命令就放心啦。
如果当前没有处于DependencyNeverSatisfied状态的作业,这条命令也不会造成任何问题——scancel接收到空参数时只会提示错误信息,但不会执行任何取消操作。
内容的提问来源于stack exchange,提问作者Bub Espinja




