#!/bin/bash
declare -a bgpids
cleanup() {
for pid in ${bgpids[@]}; do
kill -9 $pid
done
}
trap "cleanup" SIGINT SIGTERM
sometask &
bgpids+=("$!")
Eu tenho um script de shell em execução em segundo plano, que executa 5 tarefas diferentes.
Quando executo o script de shell, todas as 5 tarefas começam a ser executadas em ordem. Quando eu mato este shell, qualquer processo que esteja sendo executado, continuará a ser executado, mesmo que eu tenha matado o shell.
$ bash shell.sh & echo $!
isso me dá o PID do shell, o que me permite matá-lo mais tarde se eu quiser fazê-lo em algum momento.
#!/bin/bash
JOB1
JOB2
JOB3
JOB4
JOB5
Como posso fazer com que o shell mate todo o processo que está sendo executado, uma vez que tenha sido eliminado?
#!/bin/bash
declare -a bgpids
cleanup() {
for pid in ${bgpids[@]}; do
kill -9 $pid
done
}
trap "cleanup" SIGINT SIGTERM
sometask &
bgpids+=("$!")
Tags process kill shell-script