• Publicidad

Daemon y archivo

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Daemon y archivo

Notapor princi » 2013-04-26 08:39 @402

Hola, necesito ayuda, tengo los siguientes scripts:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. print "llama \n";
  7. print "system (qq(perl 'whilep.pl')) \n";
  8. system (qq(perl "whilep.pl"));
  9. print "vuelve \n";
  10.  
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4

Sintáxis: (whilep.pl) [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5. use Proc::Daemon; #Para correr script como demonio
  6. Proc::Daemon::Init; #Para correr script como demonio
  7.                                      
  8. our $config = do 'while.cfg';
  9. our $wor = $config->{'wor'};  
  10. our $PRUEB = "$wor/while.tmp";         
  11. open (PRUEB,">$PRUEB");
  12. print PRUEB "algo \n";
  13. close PRUEB;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Mi problema es que no se genera el archivo while.tmp cuando lo ejecuto como demonio. Si comento las líneas use Proc::Daemon; Proc::Daemon::Init; sí funciona, pero no es lo que necesito.

Espero que alguien pueda ayudarme a ver el problema.
¡¡Desde ya muchas gracias!!
princi
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2012-01-31 08:00 @375

Publicidad

Re: Daemon y archivo

Notapor explorer » 2013-04-27 11:27 @519

No sabemos por qué ha fallado la escritura.

Prueba a hacer una de estas dos cosas:

* pon el pragma use autodie; al principio del programa

* modifica la línea 11:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open (PRUEB,">$PRUEB") or die "ERROR: no pude escribir: $!\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Así sabremos que error sale. Lo más seguro es que se trate de un problema de permisos de escritura en el directorio donde se encuentra. Yo usaría la opción work_dir del new del Proc::Daemon.

Mejor dicho, intentaría seguir todas las reglas de Proc::Daemon, según aparece en su sinopsis.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 1 invitado

cron