wait for kill signal

0

Em um script bash, existe uma maneira simples de esperar por um sinal, algo como:

wait -s SIGINT

ou o que seja? Talvez apenas trap ?

    
por Alexander Mills 19.06.2018 / 07:20

1 resposta

2

Não.

wait é usado exclusivamente em um processo pai para aguardar a finalização de um processo filho (e para acessar seu status de saída).

Além disso, nenhum processo pode capturar o sinal KILL (a pergunta original usada KILL como exemplo).

Além disso, "esperar por um sinal" é uma coisa incomum para querer fazer, já que os sinais são eventos assíncronos.

Você poderia, obviamente, fazer algo como

trap 'quit=1' USR1
quit=0

while [ "$quit" -ne 1 ]; do
    printf 'do "kill -USR1 %d" to exit this loop after the sleep\n' "$$"
    sleep 1
done

mas em bash a mesma coisa pode ser feita com read com tempo limite:

while ! read -t 1; do
    echo 'press enter to exit loop'
done

ou apenas

read -p 'press enter to continue'
    
por 19.06.2018 / 07:30