[Cascavel-pm] system

Agnaldo Macedo agnaldo em starweb-software.com.br
Quarta Novembro 29 03:59:57 PST 2006


Então gente.

Eu não tenho como fugir da chamada via system.
Não posso usar webservice porque é o Perl que ativa (carrega, executa, põe 
no ar) a outra aplicação.

Como toda a estrutura funciona 100%, e a única inconveniencia são campos com 
mais de 32Kb, estou alterando a maneira como esses campos, e somente eles, 
são passados do script Perl para a outra aplicação.

Obrigado a todos que me orientaram nessas dúvidas.




----- Original Message ----- 
From: "Luis Motta Campos" <luismottacampos em yahoo.co.uk>
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Sent: Wednesday, November 29, 2006 9:43 AM
Subject: Re: [Cascavel-pm] system


Agnaldo Macedo wrote:
> Pois então gente.
>
> O shell do sistema operacional até que dá para trocar. basta setar a
> variavel de ambiente PERL5SHELL apontando ela para o novo executavel
> do shell.
>
> Fiz  meu teste aqui, sobre Win32, e, ao invés de usar o cmd.exe,
> apontei para o powershell.exe, que é o novo que o windows VAI usar
> nas novas versões. Essa parte funcionou.
>
> MAS, não solucionou o meu problema. Ou seja, tenho um script CGI em
> Perl. O mesmo recebe variaveis de formularios da web, repassa os
> dados para variaveis de ambiente, chama o meu OUTRO programa via
> system ou exec e este OUTRO programa le as variaves de ambiente e as
> usa. Tudo roda às mil maravilhas.
>
> MAS, quando tenho variaveis com mais de 32Kb, os problemas começam.
> Quando uso system, ele devolve a mensgem de erro: Can't spawn
> "cmd.exe": No such file or directory at  teste.pl linha tal Eu fiz a
> troca do shell, usando outro ao invés do cmd.exe. O erro persiste,
> apenas que ele mostra o nome do outro shell, o que indica que o Perl
> esta usando o outro shell mesmo.
>
> Quanto uso exec, não dá erro, MAS as variaveis CGI somem. Ou seja, as
> minhas variaveis ele manteve, mais algumas das genéricas somem.

  Boas descobertas técnicas.
  Mas você tem mesmo (agora que eu li a figura toda) um problema de
arquitetura.
  Acho até que alguém mencionou alguma coisa neste sentido uns posts
para trás (Alceu? Foi você?)... o que você precisa mesmo é parar de
tentar disparar shell e programas não-CGI via CGI.
  Você precisa de um web-services ou uma interface RPC-like para o seu
programa. E, desta forma, evita ter de lidar com problemas do tipo "o
ambiente do meu servidor web é muito maior que o ambiente do meu sistema
operacional, e quando eu faço exec() de alguma coisa fora do servidor
web, parte do ambiente "evapora", truncada pelo sistema operacional".

  Lamento, carinha. A gente até pode ajudar a escrever o programa novo,
mas ele tem necessáriamente que parar de usar CGI.

  Desculpe ter de dar más notícias, mas fazer direito é a melhor saída.
  Putamplexos!
-- 
Luis Motta Campos
Senior System Engineer at Segula.FR
Hobbyist Cooker and Photograph
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm 



Mais detalhes sobre a lista de discussão Cascavel-pm