Não sei por que, mas se eu colocá-los todos na mesma linha, parece funcionar:
trap on_ql_trap EXIT HUP INT QUIT TERM;
Eu tenho essa função bash:
on_ql_trap(){
echo "foobar" > "$HOME/.quicklock/debug.json"
}
ql_trap(){
trap on_ql_trap EXIT;
trap on_ql_trap 0;
trap on_ql_trap SIGHUP;
trap on_ql_trap HUP;
}
ql_trap é chamado pelo usuário, mas quando o usuário fecha a janela do bash shell que chamou a função, on_ql_trap nunca é chamada, veja pelo fato de que 'foobar' nunca é escrito.
a única coisa em que consigo pensar é que trap
não está sendo registrado para o processo correto ou algo assim. Alguém sabe como posso garantir que on_ql_trap
será chamado quando o processo terminar?
Não sei por que, mas se eu colocá-los todos na mesma linha, parece funcionar:
trap on_ql_trap EXIT HUP INT QUIT TERM;
Tags bash shell-script trap