Como parar uma função de loop infinito chamada com myFunc &

0

No meu script bash, eu tenho uma função que faz uma certa tarefa em um loop infinito. Para permitir que a próxima parte do meu código seja executada ao mesmo tempo, eu o executo com myFunc & .

Como posso matar esta função, quando o resto do meu programa é feito?

    
por Flare Cat 23.01.2016 / 02:43

1 resposta

4

Existem várias opções. Se este é o seu único processo em segundo plano, então você pode facilmente matá-lo com

kill %1

Você pode salvar o PID do subshell:

myFunc &
myFunc_PID=$!
[...]
kill -HUP "$myFunc_PID"

Você também pode usar

kill %myFunc

Faz sentido colocar o subshell kill no manipulador EXIT:

trap 'kill %myFunc' EXIT
    
por 23.01.2016 / 03:14