[Roma.pm] SIGKILL

Flavio Poletti flavio at polettix.it
Sat Jan 6 06:30:40 PST 2007


> Ciao a tutti,
> Stavo pensando, quando si lancia uno script in perl con un sh ex:
> #!/bin/bash
> /path/script.pl
>
>
> lo script.pl non è direttamente killabile,

Non capisco bene cosa intendi con "direttamente killabile". Se risali al
PID di un qualsiasi processo lo puoi "killare direttamente" inviandogli un
segnale:

 shell$ ps afx | grep script.pl
 # qui ti leggi il PID del processo, ad esempio 8765
 shell$ kill 8765 # manda SIGTERM al processo


> ma si può rendere uno script
> in perl direttamente non killabile? ex: ignorare un sigterm non è
> difficile:
> $SIG{'TERM'} = 'IGNORE';
> ma non funziona un
> $SIG{'KILL'} = 'IGNORE'; #Naturalmente non funziona :)
> qualcuno sa rispondermi?

Come giustamente rilevi, alcuni segnali non possono essere aggirati, e
SIGKILL è fra questi (nel mio sistema linux credo anche SIGSTOP). Questo
accade indipendentemente da come lanci il processo, indipendentemente dal
linguaggio di programmazione, ma dipendentemente dal kernel. Se cambi il
kernel, puoi fare quel che vuoi :D

Se, in qualche modo, vuoi ricreare la situazione dello script shell, ossia
un processo (shell) che lancia un altro sottoprocesso (/path/script.pl)
non devi far altro che utilizzare la funzione system o l'operatore qx per
chiamare un altro programma dal tuo script perl.




More information about the Roma mailing list