Executar comando no sistema [RESOLVIDO]

1. Executar comando no sistema [RESOLVIDO]

José Cleydson Ferreira da Silva
cleysinhonv

(usa Ubuntu)

Enviado em 30/08/2011 - 18:18h

Olá Pessoal,

Estou desenvolvendo um sistema web que necessita de executar alguns comandos no sistema (na verdade 2), eses comandos não são comandos do sistema e sim um programa que foi compilado por mim e irá executar uma determinada instrução.

O comando é o seguinte:

formatdb -i Read.fasta -p F -n read

Porém do meu sistema ele vai se comportar da seguinte forma: ()

exec "formatdb\t", "-i\t","$pathDatabase$databaseBlast\t","-p\t","F\t","-n\t","$databaseBlast" || warn "ERRO" ;
ou
system ("formatdb\t", "-i\t","$pathDatabase$databaseBlast\t","-p\t","F\t","-n\t","$databaseBlast") || warn "ERRO" ;

Uso esses comandos e eles não executam, alguém pode me me dar a dica de como executar o programa por meio de um script perl.


  


2. Re: Executar comando no sistema [RESOLVIDO]

Daniel Vinciguerra
dvinciguerra

(usa Debian)

Enviado em 30/08/2011 - 18:43h

Porque esta usando os "\t"?

use simplesmente:

system "meu_programa $param01 $param02 ... $paramN";


Leia os docs dos respectivos comandos:

http://perldoc.perl.org/functions/system.html
http://perldoc.perl.org/functions/exec.html


3. Re: Executar comando no sistema [RESOLVIDO]

José Cleydson Ferreira da Silva
cleysinhonv

(usa Ubuntu)

Enviado em 31/08/2011 - 08:14h

Olá Daniel,


Fiz como sugeriu e não funcionou, inicialmente estou pensando na possibilidade do usuário do apache não ter privilégios para isso. O diretório de trabalho esta com permissão 777.


Obrigado por responder, e por gentileza se poder me ajudar mais um pouco agradeço muito, por que não consegui solucionar o problema.


Abraço



4. Re: Executar comando no sistema [RESOLVIDO]

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 31/08/2011 - 08:25h

O teu programa tá presente em algum dos diretórios da variável de ambiente PATH? (Se não, vc tá passando o caminho completo para ele?)
O usuário que está executando ele tem permissão pra realizar o que o programa se propõe a fazer?

PS. permissão 777 vc é corajoso hein!!! Ainda mais se estiver utilizando CGI...


5. Re: Executar comando no sistema [RESOLVIDO]

José Cleydson Ferreira da Silva
cleysinhonv

(usa Ubuntu)

Enviado em 31/08/2011 - 08:44h

Sim, o programa está localizado em um diretório PATH. A permissão de 777 coloquei somente no diretório que preciso gerar os arquivos. Qaundo indico o caminho ele faz com que o arquivo.pl da view seja feito o download. Aceito mais sugestões.

Os comandos estão sendoexecutados da seguinte forma:

system "/usr/local/bioinformatics/formatdb -i $pathDatabase$databaseBlast -p F -n $databaseBlast" || warn "ERRO" ;

exec "/usr/local/bioinformatics/formatdb -i $pathDatabase$databaseBlast -p F -n $databaseBlast" || warn "ERRO" ;

Talvez no fim das contas pode-se até fazer um artigo sobre isso, eu colocaria nos favoritos.


6. Re: Executar comando no sistema [RESOLVIDO]

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 31/08/2011 - 10:36h

Se vc usa o apache, verifique os logs dele e veja se encontra algo referente. E quanto a questão do usuário que executa esse 'formatdb', ele tem permissão total para isso?


7. Re: Executar comando no sistema [RESOLVIDO]

José Cleydson Ferreira da Silva
cleysinhonv

(usa Ubuntu)

Enviado em 31/08/2011 - 13:01h

Ele não tem permissão total para executar o programa. só o diretorio onde ele salva os arquivos. Fiz isso para fiz de teste para ele criar os arquivos, mas não pretendo deixar assim.
O estranho é que os logs não mostra nenhum tipo de erro. fico com o log aberto o tempo todo, quando estou desenvolvendo.(tail -f /var/log/apache2/error.log) Os erros eu os vejo em tempo real.
Estou usando o módulo mod_perl do apache.
Outro teste que fiz foi logar no terminal com o usuário do apache e rodar o comando então funcionou normalmente. Mas usando o exec e system não esta funcionando. Por ser alguma configuração no mod_perl?

O mais estranho é que se eu usar o comando system ("ls -ls") funciona normal. Gostaria muito de concluir isso e saber se é algum problema com o servidor em termos de configuração ou outra coisa.



8. Re: Executar comando no sistema [RESOLVIDO]

José Cleydson Ferreira da Silva
cleysinhonv

(usa Ubuntu)

Enviado em 31/08/2011 - 16:47h

Olá pessoal consegui resolver o problema, o que estava faltando era colocar o caminho completo onde os arquivos seriam criados.

Obrigado a todos que colaboraram comigo.

Obrigado






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts