ID以外のジョブ名でジョブをキャンセルできますか?

ID以外のジョブ名でジョブをキャンセルできますか?

個々のジョブ番号をそれぞれ入力するのではなく、同じ名前の複数のジョブを削除できますか?

qdel -u username別の作業が必要なので、このオプションを使用したくありません。 + 100の別々のタスクがあるので、より速いオプションがある場合は、各タスク番号を入力しないことをお勧めします!

私はこのオプションをオンラインで見つけました。

qdel wc_jobname

しかし、エラーが返されます。

qdel:違法に形成されたジョブ識別子:wc_jobname

ベストアンサー1

ジョブ名をパラメータとして使用し、存在することを確認するスクリプトを準備できます。存在する場合はジョブを削除します...たとえば、次のスクリプトを参照として使用できます。

#!/bin/bash

#check processes in standby, which matches with our process name
ps T |grep $1 |grep -v 'grep' |grep -v $0 |awk '{print $1}' > /tmp/temp.txt

i=0
if [ $(cat /tmp/temp.txt |wc -l) -eq 0 ];
then
        echo "there are no jobs to kill"
else
#if there are jobs, kill and count them to know how many processes have been killed
while read pid
do
        kill -9 $pid
        i=$((i+1))
done < /tmp/temp.txt
#show how many jobs have been killed
echo "$i jobs killed"
fi
rm /tmp/temp.txt

おすすめ記事