[bcn-pm] IPC::Open3 d'un executable que no existeix i gesti d'errors

Salvador Fandiño salvaavesbot.com
Div Maig 26 02:29:11 PDT 2006


Hola,

Primero, disculpas por enviar el mensaje como nuevo ;-) por algun 
motivo, los mensajes que envio desde mi cuenta de yahoo, que es con la 
que estoy subscrito, no llegan a la lista. Alguien tiene idea de por que 
puede ser?

Y ya, a lo que iba, una version reducida del problema:

  use IPC::Open3;
  eval { open3("<&STDIN", ">&STDOUT", ">&STDERR", "/foo/bar") };
  print "$$ was here\n";

y otro problema similar que no se soluciona sustituyendo la llamada a
croak por exit:

  use IPC::Open3;
  END { print "END: $$ was here\n"; }
  open3("<&STDIN", ">&STDOUT", ">&STDERR", "/foo/bar");

En realidad hay que llamar a POSIX::_exit que sale sin realizar
ningun tipo de "limpieza" o si no se quiere cargar el modulo POSIX
que es bastante pesado, hacer que el proceso hijo se suicide con kill(9, 
$$) o con un exec("/bin/false");

En fin, Xavi, envias tu el bug report?

- Salva



Més informació de la llista de correu Barcelona-pm