Tengo una secuencia de comandos ejecutándose en el fondo de mi servidor Linux y me gustaría detectar señales como reiniciar o cualquier cosa que mataría a esta secuencia de comandos y, en su lugar, guardar cualquier información importante antes de salir realmente.¿Cómo capturo una señal de KILL o HUP o cancelación de usuario?
Creo que la mayoría de lo que necesito atrapar es SIGINT, SIGTERM, SIGHUP, SIGKILL.
¿Cómo captar cualquiera de estas señales y hacer que ejecute una función de salida o de lo contrario seguir ejecutando lo que estaba haciendo?
seudo código Perl:
#!/usr/bin/perl
use stricts;
use warnings;
while (true)
{
#my happy code is running
#my happy code will sleep for a few until its breath is back to keep running.
}
#ops I have detected an evil force trying to kill me
#let's call the safe exit.
sub safe_exit()
{
# save stuff
exit(1);
}
seudo código php:
<?php
while (1)
{
#my happy code is running
#my happy code will sleep for a few until its breath is back to keep running.
}
#ops I have detected an evil force trying to kill me
#let's call the safe exit.
function safe_exit()
{
# save stuff
exit(1);
}
?>
http://stackoverflow.com/questions/5180539/quick-perl-sigint-handler – daxim