quinta-feira, novembro 13, 2014

Linux: NoBreak SMS e GNU/Linux (FC5) - Parte 1 - Fazendo o Nobreak funcionar [Artigo]

Linux: NoBreak SMS e GNU/Linux (FC5) - Parte 1 - Fazendo o Nobreak funcionar [Artigo]

outro arigo
http://ubuntuforum-br.org/index.php?topic=114513.0


Nobreak SMS Manager III senoidal 1.4KVA (980W) biv/115V

Conferindo comunicação USB

Com os dois equipamentos ligados e funcionando (No-Break ligado e FC5 instalado) com um shell de root acessando, conecte o no-break e verifique com os seguintes comandos:

# vi /etc/messages

Vai aparecer uma mensagem similar a essa:

Jan 5 14:23:30 Host kernel: usb 1-1: new low speed USB device using ohci_hcd and address 3
Jan 5 14:23:30 Host kernel: usb 1-1: configuration #1 chosen from 1 choice
Jan 5 14:23:30 Host kernel: cypress 1-1:1.0: HID->COM RS232 Adapter converter detected
Jan 5 14:23:30 Host kernel: usb 1-1: HID->COM RS232 Adapter converter now attached to ttyUSB0

Se aparecer isso, então ele levantou os módulos Cypress.m8 e usbserial.m8, se isso não ocorrer, a comunicação USB ou não esta ativa (conferir BIOS) ou então seu kernel não esta com os módulos compilados.

Detalhe - O FC5 já tem um kernel com os módulos compilados. 

Caso a URL não funcione, é só baixar o JDK 5 update 10 (que foi o que eu usei).

Bom, no site da Sun, eu baixei o RPM, depois executei o bin:

# ./jdk-1_5_0_10-linux-i586-rpm.bin

Ele vai mostrar uma tela de licença, dê YES e termine a instalação.

A instalação será feita nesse diretório, vale lembrá-lo, pois a instalação da SMS tem que mudar esse diretório: /usr/java/jdk1.5.0_10/

Após a instalação, adiciona-se as seguintes linhas no final do /etc/bashrc:
JAVA_HOME=/usr/java/jdk1.5.0_10
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

Instalando o SMS Power View

Agora falta baixar o software de SMS Power View pro Fedora Core 5, que pode ser baixado no site da SMS (www.alerta24horas.com.br) mediante um login gratuito baseado no NS do seu no-break.

Feito esse processo, crie um diretório no etc, eu usarei o seguinte: /etc/sms_power/.

Aqui eu crio uma pasta chamada font e pra lá eu jogo os arquivos da SMS: /etc/sms_power/font/

Depois descompacte-o:

# tar -xzvf SMS_Power_View_Linux.tar.gz

Ele criará então uma pasta denominada installsms_V2_04_03. Entro na pasta e executo o install.sh (./INSTALL.SH).

Inicialmente ele vai perguntar sobre o local do JAVA, já foi comentado acima. Depois ele vai perguntar sobre a variável de $DISPLAY, dê um enter. Depois ele vai perguntar sobre o local de instalação, coloque o diretório /etc/sms_power/app.

Feito a instalação, agora vamos pra algumas melhorias.

Inicialmente eu mexi no seguinte script: /etc/sms_power/app/RODAR_SMS.sh

E deixei da seguinte forma:
#!/bin/bash
cd /etc/sms_power/app/
if [ -e /dev/ttyUSB0 ]; then
# adicionei a seguinte linha abaixo, senão quando você tentar fechar e iniciar o serviço o link simbólico continua lá e dá erro
   rm -f /dev/ttyS8
   ln -s /dev/ttyUSB0 /dev/ttyS8
fi

rm -f output.log
export JAVA_HOME=/usr/java/jdk1.5.0_10
export DISPLAY=
export PATH=/usr/java/jdk1.5.0_10/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.5.0_10/bin
/etc/sms_power/app/sms.sh >> output.log & /etc/sms_power/app/TOMCAT.sh &
# Adicionei essas duas linhas pra ele voltar ao sistema, senão ele ficava parado até pressionar o ENTER
sleep 20
echo "Aguarde 5 minutos para comunicação com o No-Break"

Depois salve e saia. 

Alterando a configuração da porta

A partir desse momento precisa-se ter em mente que foi criando um link simbólico do USB para o /dev/ttyS8, então falta-se alterar as configurações do software pra essa porta.

Inicialmente precisa-se rodar o software. Execute o ./RODAR_SMS.sh:

# ./RODAR_SMS.sh
Using CATALINA_BASE:   /etc/sms_power/app/tomcat
Using CATALINA_HOME:   /etc/sms_power/app/tomcat
Using CATALINA_TMPDIR: /etc/sms_power/app/tomcat/temp
Using JAVA_HOME:       /usr/java/jdk1.5.0_10

Aguarde 5 minutos para comunicação com o No-Break.

Agora execute o CONSOLE:

# ./CONSOLE.sh
Painel de Controle
------------------
1. Status
2. Medidor
3. Configurações
4. Sair

Ir na opção 3. Configurações.

Depois na 1:

1. Porta de comunicação: /dev/ttyS8
2. IP do servidor: 127.0.0.1
3. Servidor de Email:
4. Remetente do Email:
5. Senha:
6. Linguagem: Português
7. Habilitar Email: Sim
8. Configurar mensagens
9. Parâmetros para shutdown automático
10. Configura Porta do Tomcat:8080
11. Voltar

A porta de comunicação tem que ser a /dev/ttyS8 (que é um link simbólico pro ttyUSB0).

Altera-se e vai na opção 11 - Voltar
Depois vai na função 1 - Status
Tem que surgir algo desse gênero
Status
---------------
Conectado: ON
Bateria: Normal
Rede Elétrica: ON
Teste: OFF
Nobreak: ON
Inversor: OFF

Feito isso, a comunicação do seu No-Break está ok!

Acessando as configurações por HTTP

Dá pra acessar as configurações por HTTP, usa-se um browser e:

http://endereco.ip.da.maquina:8080

Pronto, seu no-break está funcionando com o Linux, podendo ser configurado os intervalos do uso do nobreak. 

Configurações do No-break

Para ir nas funções de configurações, pode-se ir tanto pelo modo CONSOLE quanto pelo modo HTTP, eu prefiro o HTTP.

Sendo assim (HTTP), ir nas funções de configurações/orelha SHUTDOWN.

Depois de falha AC, iniciar a seqüência de shutdown em XX minutos.

Explicação: Aqui configura-se o tempo até ele iniciar a execução de um script de shutdown e iniciar o shutdown da máquina.

Se ocorrer bateria baixa, iniciar a seqüência de shutdown em XX minutos.

Explicação: É importante, pois se por algum motivo a bateria estiver ruim e durar menos que o previsto, ele vai iniciar o processo de shutdown (script + shutdown).

Tempo necessário para a seqüência de shutdown antes de desligar o Nobreak XX minutos.

Explicação: Se o script for derrubar algum banco de dados ou algum outro tipo de serviço, tem que programar o tempo que leva pra isso (levando em consideração o tempo simultâneo das máquinas).

Aviso de POPUP (ele avisa por meio de um cliente).

Assim é possível instalar um cliente nas estações e nos outros servidores e eles se conectarem a esse servidor e se desligarem baseado nele, além de poder instalar clientes nas máquinas para receber mensagens popups.

Se tudo ocorrer bem, estarei publicando os outros artigos de como utilizar as configurações automáticas dele.

-------
INTRODUÇÃO

Recentemente tive que instalar o programa SMS Power View¹ para GNU/Linux e passei por alguns contratempos. Como felizmente consegui superar todos os contratempos, resolvi elaborar um tutorial para auxiliar quem porventura venha a vivenciar as mesmas dificuldades.

O tutorial foi subdividido em quatro seções:
1. INSTALAÇÃO
2. DESINSTALAÇÃO
3. TROUBLESHOOTING
4. AUTOMATIZAÇÃO

A seção INSTALAÇÃO ensina a instalar o SMS Power View. A seção DESINSTALAÇÃO ensina a remover o SMS Power View. A seção TROUBLESHOOTING² apresenta soluções para problemas corriqueiros cujo solucionamento já é conhecido. A seção AUTOMATIZAÇÃO ensina a automatizar a inicialização do SMS Power View durante a inicialização do sistema operacional.

Importante: meu sistema GNU/Linux é o XUbuntu 14.04.1 de 32 bits e eu utilizo o JRE³ da Sun instalado manualmente. Além disso, para poder usar a interface web local do SMS Power View - que daqui em diante eu vou abreviadamente chamar de SPV - você necessitará do Adobe Flash e também o Apache web server. Ainda: como eu uso XUbuntu e este fórum é do Ubuntu, todos os comandos deste tutorial utilizam a sistemática do sistema de pacotes DEB e a lógica de comandos do aplicativo apt-get. Se você usa uma distribuição GNU/Linux diferente (que funcione somente com pacotes RPM, por exemplo), será necessário adaptar os comandos deste tutorial de acordo com as particularidades da sua distribuição GNU/Linux.

¹ O SMS Power View (SPV) é um programa monitor e gerenciador de energia para uso em nobreaks inteligentes da fabricante SMS.
² Troubleshooting é uma expressão da língua inglesa que significa algo como "resolução de problemas". Diz respeito ao processo que consiste em investigar um problema, descobrir sua origem e a solução para ele, e então registrar o método de solucionamento para que tal método/procedimento possa ser aproveitado por outros que venham a passar pelo mesmo problema.
³ JRE = Java Runtime Environment = Ambiente de Execução Java. Dentro de todo JRE existe uma JVM (Java Virtual Machine = Máquina Virtual Java). Ao contrário do que diz o manual do SPV, não é necessário instalar um JDK (Java Development Kit = Kit de Desenvolvimento Java) inteiro no seu sistema (de maneira geral, um JDK já vem com um JRE, e portanto com uma JVM): para o SPV funcionar corretamente com o Java é suficiente que você instale o JRE da Sun/Oracle. Não precisa instalar JDK não.

1.1. Instale manualmente o Java da Sun

Acesse este tutorial para saber como instalar manualmente o Sun Java. Ele deverá ser instalado em /opt/java/jre/, tal qual o tutorial ensina.

Nota: de maneira geral, dentro de um JDK (Java Development Kit = Kit de Desenvolvimento Java) existe um JRE (Java Runtime Environment = Ambiente de Execução Java) e dentro do JRE existe uma JVM (Java Virtual Machine = Máquina Virtual Java). O manual do SMS Power View (SPV) diz para instalar o JDK, porém isso não é necessário, porque o SMS Power View usa somente o JRE: se você instalar o JRE da Sun/Oracle, tal qual eu explico em meu tutorial, o SMS Power View irá funcionar (tanto que está funcionando normalmente no meu sistema).

1.2. Obtenha o SMS Power View (SPV) e também o manual de instalação dele

Acesse o website Alerta 24h, cadastre-se, efetue login no website e (somente) então acesse a página Download Center.

Agora clique no link Gerenciamento de Energia e faça download do SMS Power View (SPV) para GNU/Linux. Faça download também do manual de instalação: o manual estará em formato PDF e o SPV será um tarball, ou seja, um arquivo com extensão .tar.gz.

Nota: daqui em diante vou usar a sigla SPV no lugar de SMS Power View.

1.3. Instale alguns programas auxiliares

Para facilitar sua vida, entre no terminal do shell bash e execute este comando, que instalará dois programas:
Código:
sudo apt-get install mousepad synaptic

O Mousepad é um editor de textos bastante simples mas muito útil. O Synaptic é um poderoso gestor de pacotes DEB.

Nota: no XUBuntu, o editor de textos mais simples que geralmente vem pré-instalado é o Leafpad, que no entanto não é tão simples assim porque pode salvar arquivos em formato RTF, por exemplo. Para ter certeza de que certos arquivos (como por exemplo arquivos de script) serão gravados em formato de "texto puro" (como tem que ser), eu geralmente uso um editor supersimples, como é o caso do Mousepad. Também é útil quando você copia um texto que tem formatação (fontes coloridas e/ou de diferentes tamanhos, texto com negrito, itálico etc.) e quer excluir essa formatação, pois basta colar esse texto dentro de uma janela do Mousepad que a formatação será perdida. No entanto, caso você já possua em seu sistema GNU/Linux algum outro "editor supersimples", como é o caso do GNOME Edit (linha de comando: gedit), não é necessário instalar o Mousepad. Do mesmo modo, há quem já utilize o programa Aptitude, por exemplo, no lugar do Synaptic, portanto nesse caso não será necessário instalar o Synaptic. Enfim: instale os programas acima (Mousepad e Synaptic) caso não tenha certeza de que possui em seu sistema alguma alternativa para aqueles programas.

1.4. Atualize o arquivo de configuração global do shell bash

Ainda no terminal do shell, verifique se existe o arquivo de configuração global /etc/bash.bashrc (se não existir, talvez ele seja o arquivo /etc/bashrc). Supondo que ele seja mesmo o /etc/bash.bashrc, execute este comando para editá-lo:
Código:
sudo mousepad /etc/bash.bashrc

Nota: se você usar a palavra gedit (ou a de algum outro editor de texto supersimples) no lugar de mousepad, o comando também funcionará. Caso você não esteja executando uma interface gráfica, recomendo que utilize o GNU Nano, que é um editor mais amigável que o vim. O comando para instalar o nano é este, bem simples:
Código:
sudo apt-get install nano

Se porventura não existir no seu sistema nem o /etc/bash.bashrc nem o /etc/bashrc, execute o comando abaixo para procurar no seu sistema todos os arquivos que contenham a palavra bashrc no nome. Um dos arquivos que forem encontrados será o arquivo de configuração global do shell bash (exceto aquele que aparecer dentro de uma pasta intitulada skel, pois skel é abreviação de skeleton, que em português significa esqueleto, ou seja: o arquivo dentro da pasta skel é apenas um "esqueleto", um modelo de arquivo de configuração, portanto não deve ser modificado):
Código:
sudo updatedb && locate bashrc

Agora vá até o final do arquivo de configuração global que você acabou de abrir no editor de textos e então adicione estas linhas:
Código:
#Comandos necessários para o funcionamento do SPV:
JAVA_HOME=/opt/java/jre
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

Nota: o JRE que você instalou tem que ser o da Sun/Oracle e ele tem que ser/estar instalado em /opt/java/jre/, conforme o tutorial que mencionei no item 1.1.

Salve o arquivo e então feche o Mousepad.

1.5. Descompacte o SPV e crie a pasta de instalação dele

Agora vou supor o seguinte:
i) Que o tarball que você obteve foi o arquivo install_SMS.tar.gz
ii) Que seu nome de usuário é bogus
iii) Que você salvou esse tarball dentro da sua pasta de Downloads, que fica em /home/bogus/Downloads/

Assumindo que todas as informações acima sejam verdadeiras (modifique-as de acordo com os valores corretos aí do seu sistema) e tendo em mente que o caractere~ é um atalho para a pasta pessoal do usuário atualmente conectado (se seu nome de usuário for bogus, por exemplo, então o caractere ~ será um atalho para/home/bogus/), execute este comando para entrar na sua pasta de downloads:
Código:
cd ~/Downloads

...e, agora que você está na sua pasta de Downloads, execute este comando para descompactar o tarball do SPV:
Código:
tar -xzvf install_SMS.tar.gz

O comando acima colocará todos os arquivos de instalação do SPV dentro de ~/Downloads/sms_install/

Queremos instalar o SPV em /opt/sms/, portanto execute este comando para criar a pasta dele:
Código:
sudo mkdir /opt/sms

1.6. Instale o SPV

Estando ainda dentro de ~/Downloads/ (você pode executar o comando pwd para confirmar sua localização atual na estrutura de diretórios), execute este comando para instalar o SPV:
Código:
sudo ./sms_install/install.sh

O instalador detectará automaticamente o Sun Java instalado em /opt/java/jre/. Se isso não ocorrer é porque foi necessário executar sudo no comando acima (que faz você "temporariamente se transformar" em usuário root) porém na pasta do root deve haver algum arquivo de configuração bashrc que "ainda não sabe" que seu JRE está instalado em /opt/java/jre/. Enfim: neste caso, informe manualmente (digite) o caminho /opt/java/jre e confirme pressionando a tecla ENTER.

O monitor padrão do seu sistema é o :0.0, portanto se o instalador perguntar se o valor padrão da variável DISPLAY é :0.0, basta confirmar pressionando a tecla ENTER. Alternativamente, você pode abrir outra janela do terminal e executar este comando, para saber qual é o valor da variável DISPLAY do seu sistema:
Código:
echo $DISPLAY

Quando o instalador pedir para você digitar o local de instalação, digite /opt/sms e confirme com ENTER. Se o instalador pedir para confirmar essa decisão, digite s e novamente confirme com ENTER.

Se tudo correu bem, aparecerá uma mensagem como esta:

O SMS PowerView Linux encontra-se em /opt/sms e esta pronto para executar. Para tal, basta executar o script powerview

1.7. Inicialize o SPV

Para inicializar o SPV, basta executar este comando:
Código:
sudo /opt/sms/powerview start -g

Nota: se você não estiver executando nenhum ambiente gráfico a opção -g deverá ser omitida.

Se no ambiente gráfico aparecer uma janela perguntando algo a respeito de teste semanal ou mensal da bateria, apenas clique em OK. Você poderá mudar isso depois.

A opção -g informada acima deverá fazer com que o ícone do programa (uma letra S) apareça na barra de tarefas. Se o ícone for de cor azul, que bom, deu tudo certo. Mas se for de cor vermelha, há algo errado com a execução do programa: neste caso, observe se apareceu alguma mensagem de erro no terminal do shell e então siga para a seção 3 (troubleshooting / resolução de problemas) deste tutorial para ver se há solução para o seu problema.

Caso o seu sistema esteja com servidor web Apache instalado e em execução e o seu navegador esteja usando o plugin Adobe Flash player (ou algum outro plugin capaz de executar conteúdo Flash), então abra uma nova aba do seu navegador e clique aqui para acessar o monitor web do seu nobreak.

Nota: caso o Adobe Flash e/ou o servidor Apache não esteja(m) instalado(s), você pode executar o Synaptic, daí procurar por apache e/ou por flash, marcar para instalação os arquivos que forem necessários, e então mandar o Synaptic aplicar as alterações. O Synaptic automaticamente fará download dos pacotes (inclusive dependências) e os instalará e configurará. Comando para executar o Synaptic a partir do terminal:
Código:
sudo synaptic

LEGENDA:
A - o procedimento deve ser executado somente caso você tenha Automatizado a inicialização do SPV conforme explicado na seção 4 deste tutorial
N - o procedimento deve ser executado somente caso você Não tenha automatizado a inicialização do SPV
AN - o procedimento deve ser executado independentemente de você ter ou não automatizado a inicialização do SPV

Para você desinstalar corretamente o SMS Power View, os procedimentos a seguir precisam ser executados de cima para baixo e respeitando-se a legenda de cada um deles:

2.1. (desfaz o item 4.5) Interrompa a execução do serviço smspv

Entre no terminal do shell bash e execute o seguinte comando, para interromper manualmente o serviço smspv:
Código:
sudo service smspv stop

2.2. (desfaz o item 4.4) Elimine o vínculo entre o seu sistema operacional e o script de inicialização do serviço smspv

Execute este comando para que seu sistema operacional pare de executar o script smspv durante cada inicialização (boot):
Código:
sudo update-rc.d -f smspv remove

2.3. (desfaz o item 4.3) Exclua o script de inicialização do serviço smspv

Ainda no terminal do shell bash, execute este comando para excluir definitivamente o script de inicialização smspv:
Código:
sudo rm -f /etc/init.d/smspv

2.4. Pare o SMS Power View

Entre no terminal do shell bash e execute este comando para interromper o funcionamento do SMS Power View:
Código:
sudo /opt/sms/powerview stop

AN 2.5. (desfaz o item 1.5) Exclua a pasta /opt/sms/

Ainda no terminal do shell bash, execute este comando para excluir todo o conteúdo da pasta sms (inclusive a própria pasta sms) que se encontra dentro da pasta/opt:
Código:
sudo rm -rf /opt/sms

AN 2.6. (desfaz o item 1.4) Retorne o arquivo de configuração global do shell bash ao estado anterior

Assumindo que o arquivo que você editou durante a instalação foi o /etc/bash.bashrc, execute este comando para entrar no modo de edição do arquivo bash.bashrcvia aplicativo Mousepad:
Código:
sudo mousepad /etc/bash.bashrc

Agora exclua estas linhas que você havia inserido:
Código:
#Comandos necessários para o funcionamento do SMS Power View:
JAVA_HOME=/opt/java/jre
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

...e então salve o arquivo e feche o Mousepad.

Alternativamente, você pode colocar um caractere # no início das linhas (exceto a primeira, que já possui esse caractere). Isso fará com que todas essas linhas sejam ignoradas pelo shell bash. O código deverá ficar assim:
Código:
#Comandos necessários para o funcionamento do SMS Power View:
#JAVA_HOME=/opt/java/jre
#PATH=$JAVA_HOME/bin:$PATH
#export JAVA_HOME PATH


Esta seção de troubleshooting (resolução de problemas) foi criada para apresentar dicas referentes a problemas corriqueiros cuja solução já é conhecida.

3.1. (incluído em 03/09/2014) Erro do "Stack Guard" devido à biblioteca librxtxSerial.so

Ao executar o SPV via terminal do shell bash, você pode vir a se deparar com uma mensagem parecida com esta:

Java HotSpot(TM) Client VM warning: You have loaded library /opt/sms/libs/32/librxtxSerial.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'.
Experimental:  JNI_OnLoad called.


Para entender essa mensagem de erro, é preciso entender duas coisas:

i) O arquivo librxtxSerial.so é uma biblioteca escrita em linguagem C. Ela faz parte do SPV e é carregada durante a inicialização da JVM (Java Virtual Machine / Máquina Virtual Java) para fornecer alguns recursos que permitem ao SPV comunicar-se em modo serial com o seu nobreak por intermédio da porta USB do seu computador.

iiStack Guard é um recurso da JVM que permite a essa JVM analisar o código-fonte de arquivos escritos em linguagem C (como é o caso da biblioteca librxtxSerial.so) e verificar se dentro desses arquivos há algum código malicioso ou mal escrito.

No caso, a mensagem de erro acima ocorreu porque o código-fonte do arquivo librxtxSerial.so que está dentro da pasta do SPV possui algum problema que foi detectado pelo Stack Guard da JVM. Para parar de ver esse alerta, você precisará instalar uma versão dessa biblioteca que seja compatível com a sua JVM. As mais recentes versões do Ubuntu (XUbuntu, KUbuntu etc.) possuem nos repositórios o pacote librxtx-java, que possui dentro dele uma versão compatível do arquivo librxtxSerial.so. Para instalar esse pacote, basta executar este comando, no terminal do shell bash:
Código:
sudo apt-get install librxtx-java

Se quiser olhar com calma esse pacote, execute o Synaptic:
Código:
sudo synaptic

...e então procure o pacote librxtx-java. Caso ele ainda não esteja instalado, instale-o e em seguida clique sobre ele com o botão direito do mouse, selecione a opção Propriedades e clique na aba Arquivos instalados: você verá uma lista contendo inclusive a linha /usr/lib/jni/librxtxSerial.so, que é justamente a localização do arquivo-biblioteca compatível de que você necessita.

Vamos fazer backup da biblioteca original do SPV e em seguida criar uma ligação para a biblioteca que é compatível. Primeiro o comando para criar backup da biblioteca original (o backup da biblioteca será o arquivo librxtxSerial.so.bak):
Se o seu sistema for de 32 bits:
Código:
sudo mv /opt/sms/libs/32/librxtxSerial.so /opt/sms/libs/32/librxtxSerial.so.bak
Se o seu sistema for de 64 bits:
Código:
sudo mv /opt/sms/libs/64/librxtxSerial.so /opt/sms/libs/64/librxtxSerial.so.bak

Agora basta criar uma ligação que aponte para a biblioteca que funciona:
Se o seu sistema for de 32 bits:
Código:
sudo ln -sf /usr/lib/jni/librxtxSerial.so /opt/sms/libs/32/librxtxSerial.so
Se o seu sistema for de 64 bits:
Código:
sudo ln -sf /usr/lib/jni/librxtxSerial.so /opt/sms/libs/64/librxtxSerial.so

Reinicie seu computador, retorne ao terminal do shell bash e execute este comando:
Código:
sudo /opt/sms/powerview start -g

Se aquela mensagem de erro não aparecer mais, significa que a nova biblioteca librxtxSerial.so funcionou sem dar problemas com a sua JVM. Piscada

Nota: caso não esteja executando uma interface gráfica, omita a opção -g, no comando acima. Se quiser reiniciar o powerview (em interface gráfica) sem reiniciar o sistema, execute este comando (omita o -g caso você não esteja em uma interface gráfica):
Código:
sudo /opt/sms/powerview restart -g

3.2. (incluído em 13/09/2014) SPV perde a conexão com o serviço remoto Alerta 24h
Você se cadastrou no website Alerta24h, acessou o website local do seu cliente SPV, foi em Configurações / Alerta 24h, inseriu o mesmo usuário e senha usados no seu cadastro no Alerta 24h, marcou as caixas Alerta 24h Habilitado e Enviar dados do ambiente ao Alerta, clicou no botão salvar, o painel direito (Status) passou a indicar que seu cliente SPV está conectado ao serviço remoto Alerta 24h (o ícone em formato de raio "acendeu" / ficou preto), mas após reiniciar o seu computador e retornar ao website local do seu cliente SPV você percebeu que a conexão com o serviço remoto Alerta 24h foi perdida (o ícone em formato de raio "apagou" / ficou cinza claro). Você reconectou, mas após iniciar novamente o seu computador o Alerta 24h novamente perdeu a conexão. E agora? Como manter a conexão persistente?

A solução é simples: edite o arquivo /opt/sms/xml/configuracoes.properties e mude o texto LOG_COMUNICACAO=0 para LOG_COMUNICACAO=1. Isso fará o cliente SPV enviar frequentemente um pedido de "keep alive" ("mantenha-se vivo / acordado") para o servidor remoto do serviço Alerta 24h e isso manterá a conexão ativa.

Comando para editar o arquivo usando o Mousepad:
Código:
sudo mousepad /opt/sms/xml/configuracoes.properties

Após mudar de 0 para 1 o valor do parâmetro LOG_COMUNICACAO, salve o arquivo, feche o Mousepad e reinicie o seu computador.

Após executado esse procedimento, ainda é possível que seu computador venha a ser desconectado pelo serviço Alerta 24h: isso é raro, mas pode ocorrer caso o servidor remoto seja desconectado temporariamente (desligado e religado, ou então reiniciado, por exemplo). Quanto a isso não há muito o que se possa fazer: a empresa SMS é que precisa configurar seu servidor para não dar timeout nas conexões quando for reiniciado ou desligado e religado (timeout = tempo limite. Quando o tempo limite é atingido - seja por que motivo for - a conexão é perdida). O que você pode fazer é colocar este URL como página inicial do seu navegador, daí sempre que você abrir seu navegador veja se o serviço foi desconectado: se houver sido, basta deixar marcada a caixa Alerta 24h Habilitado e clicar no botão salvar. Pelo menos o log automático preservou suas credenciais e por isto você não precisou digitar novamente o usuário e a senha. Mas, repito: é raro acontecer de o servidor remoto sair do ar temporariamente.

Para que o SPV seja executado, é necessário executar o comando sudo /opt/sms/powerview start, com ou sem o acréscimo da opção -g, por exemplo. No entanto, essa pode ser uma tarefa ingrata para quem prefere que o SPV seja sempre executado, automaticamente, durante a inicialização do sistema.

Neste caso, para que o SPV seja iniciado automaticamente será necessário criar um script "init", que é um script de inicialização automática. Eis o passo-a-passo:

4.1. Execute o Mousepad em modo superusuário

Entre no terminal do shell bash e execute este comando para inicializar o editor de textos Mousepad em modo superusuário:
Código:
sudo mousepad

4.2. Gere o código do script

Copie o código abaixo e cole-o dentro da janela do Mousepad:
Código:
#!/bin/bash

### BEGIN INIT INFO
# Provides:          smspv
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SMS Power View
# Description:       Script que executa o script 'powerview' como sendo um serviço denominado 'smspv'
### END INIT INFO

SMS_HOME="/opt/sms"

# Retorna erro caso não encontre o script 'powerview'
if [ ! -f $SMS_HOME/powerview -o ! -d $SMS_HOME ]; then
echo "O script 'powerview' não foi encontrado!"
exit 1
fi

case "$1" in
start)
   # Inicializa o serviço 'smspv' (o script 'powerview') quando o sistema operacional está em um dos runlevels definidos em Default-Start
   echo -n "Inicializando o serviço SMS Power View..."
   date >> $SMS_HOME/logs/sistema/inicializacoes.log
   $SMS_HOME/powerview start --no-gui >> $SMS_HOME/logs/sistema/inicializacoes.log
   echo "OK"
;;

stop)
   # Interrompe o serviço 'smspv' (o script 'powerview') quando o sistema operacional está em um dos runlevels definidos em Default-Stop
   echo -n "Parando o serviço SMS Power View..."
   $SMS_HOME/powerview stop
   echo "OK"
;;

reload|restart)
   $0 stop
   $0 start
;;

*)
   echo "Uso: smspv start|stop|restart|reload"
   exit 1
esac

exit 0

Nota: de maneira geral, os sistemas GNU/Linux inicializam no runlevel 2, que é um nível de execução multiusuário. Algumas distribuições podem executar o sistema em um runlevel maior (3, 4 ou 5, que são todos modos multiusuário, ou seja, que permitem que vários usuários se conectem / efetuem login ao mesmo tempo). Se quiser saber em qual nível de execução você (sua conta) atualmente se encontra dentro do seu sistema GNU/Linux, execute este comando:
Código:
who -r

No caso, o código do script acima faz várias coisas, mas a mais importante delas é esta: sempre que seu sistema estiver no runlevel 2, 3, 4 ou 5 (ou seja: em modo multiusuário), o script executará um comando que inicializará o SPV. Além disso, essa inicialização será executada com a opção --no-gui, que faz com que o SPV seja executado como um serviço (ele "roda" no plano de fundo, sem interface gráfica). Ainda, o script faz com que um log das inicializações do SPV seja registrado em/opt/sms/logs/sistema/inicializacoes.log, portanto você poderá a qualquer tempo abrir ou visualizar o conteúdo daquele arquivo inicializacoes.log, para saber quais foram as mensagens que o SPV gerou em cada uma das vezes em que o script inicializou o SPV. Piscada

4.3. Salve o script e torne-o executável

Ainda na janela do Mousepad, vá em Arquivo e use a opção Salvar Como... para salvar esse arquivo em /etc/init.d/smspv

De volta ao terminal do shell bash, execute este comando para tornar o arquivo legível e executável:
Código:
sudo chmod 755 /etc/init.d/smspv

4.4. Informe ao seu sistema operacional que o script smspv existe

Execute este comando no terminal do shell bash, para que seu sistema passe a executar o script smspv durante toda inicialização (boot):
Código:
sudo update-rc.d smspv defaults

4.5. Inicialize o serviço

Execute este comando para já inicializar manualmente o smspv:
Código:
sudo service smspv start

4.6. Reinicialize o sistema e teste o funcionamento do script

Reinicie o sistema, efetue login novamente, abra seu navegador web preferido e clique aqui. Se a página do SPV for carregada, o script de inicialização está funcionando (de maneira automatizada).



Um comentário:

Tico disse...

O site para baixar o arquivo SMS_Power_View_Linux.tar.gz não está mais disponível.

Você ainda tem algum lugar pra publicar esse arquivo?

Abraços e parabéns pelo artigo!