2012-07-11 14 views

Respuesta

7

Trampa la señales de terminación y los re-ruta para algo, más simple sería:

$SIG{TERM} = $SIG{INT} = $SIG{QUIT} = $SIG{HUP} = sub { die; }; 
+1

Gracias, esto funcionó. Solo obtuve esa subrutina asignada ejecutada tres veces después de^C signal ... –

+3

@ Janis así que, ahora sabes, esa^C señal es un 3 señales diferentes;) tal vez quieras usar solo una señal, como 'QUIT' o 'TERM' o' INT'. redirige solo uno de ellos. – gaussblurinc

+2

O podría hacer que el 'sub' recuerde que ya fue llamado. La palabra clave ['state'] (http://perldoc.perl.org/functions/state.html) podría ser buena para eso. – simbabque

Cuestiones relacionadas