[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