Você não pode capturar SIGKILL
(e SIGSTOP
), portanto, não é possível ativar seu manipulador personalizado para SIGKILL
.
Você pode pegar todos os outros sinais, então talvez tente fazer um design em torno deles.
Além disso, ao fazer:
pkill myscript
seja o padrão pkill
enviará SIGTERM
, não SIGKILL
, o que obviamente pode ser detectado.
Por exemplo, dentro do seu script, na parte superior, adicione:
trap 'echo foobar' TERM
O shell trap
embutido é usado para interceptar um sinal e despachar qualquer manipulador personalizado, ou ignorar o sinal completamente.
Aqui o comando echo foobar
será executado quando o shell receber TERM
.
Você também pode fazer o mesmo para outros sinais; modifique também o comando para atender sua necessidade. Por exemplo, executando echo foobar
e executando um script de manipulador personalizado:
trap 'echo foobar; /my/custom/handler.sh' TERM
Se você planeja exit
depois disso:
trap 'echo foobar; /my/custom/handler.sh; exit' TERM