La solución más fácil a eso es que escribas el PID en un fichero cuando inicias el programa. En Perl el PID es accesible a través de $$
Using perl Syntax Highlighting
my $pid_fn = '/var/run/foomatic/p1.pid';
END
{ unlink $pid_fn }
open PID
, '>', $pid_fn or die "unable to create PID file";
print PID
"$$\n";
close PID
;Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Esto suele hacerse un poco más complicado, para asegurarse de que no existe ya un programa corriendo, o que una ejecución anterior ha terminado sin borrar el fichero con el PID, etc. Seguro que también hay algún módulo en CPAN que ya lo hace todo.
Luego, para enviar la señal al proceso, por ejemplo desde la
shell:
Using bash Syntax Highlighting
kill -USR1 `cat /var
/run
/foomatic p1.pid
`;
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4