Tratador de evento do tipo processo

Pelo o que entendi, esse tratador serve para executar um programa externo ao ScadaBR quando algum evento ocorre.

Fiz um teste, colocando no comando de processo ativo, por exemplo: “c:\Windows\notepad.exe”, esperando que o notepad fosse aberto quando ocorresse o evento, mas ao invés disso o ScadaBR abriu uma janela com a seguinte mensagem: Verifique o console de seu Tomcat para a saída do processo.

Alguém sabe do que isso se trata?

Fiz um novo teste em uma instalação do Linux, criando um script de shell de teste para ser rodado e funcionou como deveria. Pelo jeito o problema é só no Windows.

Poxa, legal Rodrigo, vc ta destruindo mesmo o ScadaBR (no bom sentido), só dá vc aqui no fórum, isso é mto bom pra comunidade, cara, quando vc lançou a pergunta, eu tentei fazer funcionar, uso o ScadaBR no linux e não consegui, só me retornava a mesma mensagem que descreveu, por isso que não escrevi nada, porque não tinha como ajudar, eu testei alguns comandos básicos da shell do linux e não funcionaram, será que vc poderia detalhar aqui o que vc fez para termos um exemplo para seguir?

Abraço!

Cara, o que acontece é que já fechei uma proposta para migrar o SCADA atual de um cliente para o ScadaBR, então estou tentando testá-lo ao máximo antes de implementar lá, tentando diminuir o risco de dar pau no cliente. Como vira e mexa encontramos algum problema, estou me virando para testar todas as funções do software antes de colocar no cliente.

Sobre esse problema específico, ainda não sei o que pode ser, pois eu tinha esquecido de testar isso no Linux, hoje lembrei e funcionou de primeira. Já no Windows continua o mesmo erro. Palpites:

  • permissões para rodar o script. Tente colocá-lo em 777 e teste novamente. Aliás, você sabe qual o usuário que o ScadaBR usa para rodar as coisas no Linux? Pois se ele tiver um usuário específico é mais seguro dar permissão a este usuário que a todo mundo.
  • Arquivo de script não executável. Veja se o arquivo está com permissão 6, ao invés de 7. O arquivo precisa ser executável.
  • Rode o script na mão antes para ter certeza que funciona. No meu caso, só testei esse script ridículo:
    #/bin/bash
    mkdir /data/temp/scadabr

Creio que vc já deve ter testado estas alternativas, mas é só o que me veio a mente agora. Como disse, para mim rodou de primeira.

Abraço!

Faz tempo que não dou as caras por aqui, pois é, recentemente voltei a usar (ativa + frenetica)*mente o ScadaBR. 

Estou querendo ressuscitar um tópico morto, como executar um processo pelo tratador de evento.

Fiz um script para Linux parecido com o RodrigoMartinho, aliás se ver isso por favor responda. Dei permissões e tornei executável com o comando: 

chmod 777 teste.sh

e executei o pelo terminal com o seguinte comando

./teste.sh

e realmente criou a pasta como no exemplo do post acima.

Quando vou tentar refazer isso no ScadaBR não consigo, não sei a sintaxe para executar o script, olhando nos site dos pais da criança, http://mango.serotoninsoftware.com/forum/posts/list/478.page#2273 vi o seguinte: "The process handler is calling /var/lib/tomcat6/webapps/ROOT/test.sh"

Pelo que entendi o script precisa estar nesta pasta, correto? E em "Comando de processo ativo" eu executo como, com "./teste.sh" ou com "teste.sh" não funcionou de nenhuma das formas.

Qualquer ajuda é bem vinda, parece que não temos material suficiente para ajudar o pessoal neste tema ainda.

Abraço

Olá pessoal,

Só pra avisar, roda até no Windows! Só que é claro, com algumas restrições.

Esse tratador de eventos, foi desenvolvido para rodar aplicações em linha de comando, não com interface gráfica. Assim, recomendo que vocês façam um teste com um arquivo .bat ou um extrator de arquivos (jar, rar, zip) para ver funcionando.

Estou usando para extrair dados de emails.. e dá pra fazer muita coisa com ele.

Aproveito pra deixar algumas dicas no linux... Basta que o usuário tomcat tenha acesso ao processo...

#chown tomcat6.tomcat6 script.sh

...e óbvio, que o processo/script tenha permissão de execução =]

Abs e bom uso

Valeu a dica Diego, principalmente quanto a dar permissão para o tomcat. Meu script teste.sh (que apenas cria um diretorio chamado TeStE em /home/fabio) já está da seguinte forma e na seguinte localização:

fabio@PC-do-Fabio:/var/lib/tomcat6/webapps/ROOT$ ls -l

total 12
-rw-r--r-- 1 tomcat6 tomcat6 1887 Fev 28 17:51 index.html
drwxr-xr-x 2 tomcat6 tomcat6 4096 Fev 28 17:51 META-INF
-rwxrwxrwx 1 tomcat6 tomcat6   35 Mar 23 14:29 teste.sh
 
O que estou me perdendo é no formato ou sintaxe do comando, não sei a partir de qual pasta os comandos estão sendo executados, se são de /var/lib/tomcat6/webapps/ROOT ou de outra pasta, mas para garantir tentei executar de todas estas formas abaixo o script e sem sucesso, está faltando algo bobo, inclusive fiz o teste até com a versão 1.0 beta e nada, veja as combinações que tentei colocar dentro da caixa "Comando de processo ativo":
 
/var/lib/tomcat6/webapps/ROOT/./teste.sh
/var/lib/tomcat6/webapps/ROOT/teste.sh
$/var/lib/tomcat6/webapps/ROOT/./teste.sh
$/var/lib/tomcat6/webapps/ROOT/teste.sh
./teste.sh
teste.sh
$./teste.sh
$teste.sh
 
Ora eu tenho o erro "Verifique seu console ..." ora "que não é possível rodar algo.."
Quanto a como fazer um script, depois vou me virar, agora eu queria mesmo era aprender a executá-los. Ah meu script funciona no ubuntu pelo terminal, sempre com um "./" na frente.
 
Abraço!

Oi Fábio,

Bom, eu sempre uso o caminho absoluto - contando a partir da raiz do sistema / ou C:>\

Estou usando na versão 1.0 e sem problemas...

Não sei exatamente o que pode estar ocorrendo... posta ai o log se tiver algo interessante.

Abs

Boa, olhando o mango.log, que era o único arquivo que gerou algum log sobre isso, eu vi que:

 
WARN  2013-04-22 17:05:29,645 (com.serotonin.mango.rt.maint.work.ProcessWorkItem.executeProcessCommand:95) - Process error: 'mkdir: é impossível criar o diretório "/home/fabio/TeStE": Permissão negada
'
 
No "comando de processo ativo" mantive a ideia antiga, o comando foi dado da seguinte forma: /var/lib/tomcat6/webapps/ROOT/./teste.sh , porém, editei o teste.sh para criar uma pasta dentro de /var/lib/tomcat6/webapps/ROOT/ chamada TeStE e num é que funcionou, o problema é que o usuário tomcat6 não tem permissão para criar pastas no /home. Burrice a minha mesmo, mas o linux é um universo vasto, aprendo um pouquinho a cada dia, e eu culpando o inocente ScadaBR, kkkkkk.
Agora só falta aprender a fazer scripts em Linux, se bem que tem um site bom, um tal de aurelio ponto net, que fala sobre shell script.
 
Valew! Mais um mistério desvendado!