Esse comando parece ok. Embora quando eu tentei isso, parece que o comando foi muito rápido. É como se meu script de teste não tivesse tempo de instalar o manipulador de sinal antes de ser filmado.
Um script de teste:
$ echo '$SIG{USR1} = sub { print "GOT SIGNAL\n" }; sleep 100' > sigtest.pl
Grave imediatamente: (o sono está lá, então o próximo prompt não é impresso imediatamente)
$ perl sigtest.pl & kill -USR1 $! ; sleep 1
[1] 8825
[1]+ User defined signal 1 perl sigtest.pl
Não imprimiu nada, mas morreu ao sinal. Vamos dar um tempo:
perl sigtest.pl & ( sleep 0.5 ; kill -USR1 $! )
[1] 8827
GOT SIGNAL
[1]+ Done perl sigtest.pl
Agora funcionou, o manipulador de sinal foi acionado. (o sinal interrompeu o sleep
, então o script saiu de qualquer maneira).