Вы можете подготовить сценарий, который принимает имя задания в качестве аргумента и проверяет его существование... В случае существования он удалит это задание... Например, вы можете использовать этот сценарий в качестве ссылки:
#!/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
Это должно помочь:
jobs -lr | grep -F something | awk '{print $2}' | xargs kill
-l
перечисляет идентификатор процесса -
-r
ограничения на выполнение заданий
killall sends a signal to all processes running any of the specified commands. If no signal name is specified, SIGTERM is sent.
Signals can be specified either by name (e.g. -HUP or -SIGHUP ) or by number (e.g. -1) or by option -s.