Programación Web y Scripting > Perl
Sub Como Exec &&
Podwor:
Si ya lo se su -, de ahi me pregunta ya que a mi al dejarlo en background el sigue esperando algun tipo de retorno y se queeeeeda ahi.
Si vos lo solucionaste, cual es tu problema?
Saludos!!
su -:
Mira, yo lo que quiero hacer es un escript, 1 solo, un servidor y un cliente.
El problema es que: se llama a sub server, el server se queda en "Zombie" e impide que corra el resto del programa.
El sevidor (sub server) no tiene que ver nada con el resto del programa, bueno, solo que es del mismo escript, por lo tanto si se queda hay no inporta de amucho mientras que siga haciendo su tarea, pero el cliente, que es grafico tiene que correr, despues del server, Se hace con un fork.
Si nesecitas correr un sub y saver este cuando a finalizado haces esto:
--- Código: Text --- defined(my $pid = fork);unless ($pid) { exec "server"; die "Error: $!\n";}waitpid($pid, 0);
Podwor:
Entiendo tu problema, cuando haces esto "exec server &" desde tu shell seguramente tienes que darle uno o dos enter para que el shell te responda nuevamente. Cosa que me pasa mi por lo que no puedo hacer system("exec server &"); ya que se me queda como "Zombie" como tu has dicho.
Yo solucione el problema con dos hilos, el hilo secundario "para el servidor" lo corri sin & o sea que tu harias system("exec server"); y el hilo principal seguiria el script de tu programa.
Saludos!
su -:
--- Citar ---Entiendo tu problema, cuando haces esto "exec server &" desde tu shell seguramente tienes que darle uno o dos enter para que el shell te responda nuevamente. Cosa que me pasa mi por lo que no puedo hacer system("exec server &"); ya que se me queda como "Zombie" como tu has dicho.
--- Fin de la cita ---
No, mira, el problema esta resuelto, lo hice con fork, pero con system("exec $programa &"), tambien se puede, el problema mio era que queria el server y el cliente en el mismo archivo.pl
Si quieres hacerlo con system("exec $exec &);" lo puedes hacer haci, y no se quedara en "Zombie".
:smartass:
--- Código: Text ---#!/usr/bin/perl -wsystem("exec mozilla &");print "Funciono, el & hizo un fork y por eso puedo leer esto mientra que uso mozilla\n"; creo que el problema seria matar el exec
:hola:
Navegación
[*] Página Anterior
Ir a la versión completa