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

답변2

이렇게 하면 트릭을 수행할 수 있습니다.

jobs -lr | grep -F something | awk '{print $2}' | xargs kill

-l프로세스 ID 나열

-r작업 실행에 대한 제한 사항

답변3

남자가 사람을 죽인다:

Killall은 지정된 명령을 실행하는 모든 프로세스에 신호를 보냅니다. 신호 이름이 지정되지 않으면 SIGTERM이 전송됩니다.

신호는 이름(예: -HUP 또는 -SIGHUP), 숫자(예: -1) 또는 옵션 -s로 지정할 수 있습니다.

답변4

당신은 이것을 할 수 있습니다 qdel [job_name]. 예를 들어 작업 이름이 "analytic1" 인 경우 이 작업을 수행합니다 qdel analysis1. 때로는 -fso 를 추가해야 할 때도 있습니다 qdel -f analysis1.

관련 정보