Digamos que eu tenho isso script.sh
#!/bin/bash
exit_script() {
echo "Printing something special!"
echo "Maybe executing other commands!"
kill -- -$$ # Sends SIGTERM to child/sub processes
}
echo "Some other text"
#other commands here
sleep infinity
Quero script.sh
executar a função exit_script
sempre que receber SIGINT
ou SIGTERM
Por exemplo:
killall script.sh # it will send SIGTERM to my script
e eu quero que meu script execute isso
exit_script() {
echo "Printing something special!"
echo "Maybe executing other commands!"
kill -- -$$ # Sends SIGTERM to child/sub processes
}
Eu tentei implementar esse recurso usando trap
trap exit_script SIGINT SIGTERM
A pessoa que respondeu à minha pergunta me mostrou errada.
mas não funcionou porque trap
parece reagir apenas a sinais enviados a processos secundários / filhos. Como iniciante, não consegui decifrar trap
a página de manual do usuário, então provavelmente perdi a solução.
Acho que é isso que programas "reais" como o Chromium fazem quando você os envia SIGTERM
From https://major.io/2010/03/18/sigterm-vs-sigkill/
O aplicativo pode determinar o que deseja fazer quando um SIGTERM for recebido. Embora a maioria dos aplicativos limpe seus recursos e pare, outros podem não.