我想清理队列并删除状态为 DependencyNeverSatisfied 的待处理作业。
我想知道是否存在任何选项允许它批量执行,而不是为该状态下的每个作业 ID 执行 scancel。
有多种方法可以使用 Bash 语句来解决这个问题。一种可能的解决方案是:
squeue -h -t PD -O jobid,reason | awk '/DependencyNeverSatisfied/ {print $1}' | xargs scancel
squeue
命令与 -h
选项一起运行以删除标头,-t
选项用于过滤掉不处于 PENDING 状态的作业,-O
用于仅显示作业 ID 和原因。该列表被馈送到 awk
,打印那些因“DependencyNeverSatisfied”原因而待处理的作业的作业 id,然后馈送到 xargs
以在这些作业 id 上调用 scancel
。
作为健全性检查,您可以插入
echo
来查看将执行什么而不是实际执行它:
squeue -h -t PD -O jobid,reason | awk '/DependencyNeverSatisfied/ {print $1}' | xargs echo scancel