Blog Oobj

Instalação e Configuração do Tomcat como serviço no Linux

0
Tempo de leitura: 5 minutos

 

Visando facilitar a utilização do Tomcat no Linux, criamos um script que reúne em um único arquivo as operações necessárias para utilização do mesmo. Além do script, também pode-se realizar algumas configurações para se utilizar como um serviço.

Para facilitar o entendimento o artigo estará dividido em três partes, primeiro mostraremos como criar o script e como ele funciona; depois mostraremos como configurar como serviço utilizando a biblioteca  “chkconfig” e por último mostraremos como você pode utilizar todas as facilidades na prática.


Parte 1 – Criando os Scripts

Nome do arquivo a ser criado arquivo: tomcat

salvar o mesmo na pasta “bin” do apache.

Entendendo o conteúdo do script:

 

1º) Variáveis a serem preenchidas:

 

#!/bin/bash
# chkconfig: 234 20 80
# description: Tomcat Server basic start/shutdown script
# processname: tomcat

#Caso utilize um java diferente do do SO, informar caminho aqui, e exportar a variavel
#JAVA_HOME = /opt/jre-1.0_60/
#export JAVA_HOME

#Define diretorio do tomcat e scripts de inicio e parada
TOMCAT_HOME=/opt/oobj/apache-tomcat-7.0.50
START_TOMCAT=$TOMCAT_HOME/bin/startup.sh
STOP_TOMCAT=$TOMCAT_HOME/bin/shutdown.sh

 

a) JAVA_HOME: está comentada pois o tomcat já pega o java do SO, caso queira utilizar um java específico, basta descomentar e informar o caminho da pasta do java;

b) TOMCAT_HOME : Define-se o caminho do tomcat.

 

2º) Procedimento de inicialização “start”

 

start() {     a=`ps -ef |grep java | grep -m 1 "$TOMCAT_HOME" | awk '{ print $15 }'`     if [ -n  "$a" ]; then     echo -e "   33[1;32m Serviço ja em execucao  33[0m"     else         echo -n "Starting tomcat: "         cd $TOMCAT_HOME         ${START_TOMCAT}         echo "done."     fi                 } 

 

a) Na variável “a” é armazenada informação se o tomcat está ativo ou não. tratasse de uma consulta pelo serviço, utilizando-se 2 filtros, um pelo “java” e outro pelo caminho de instalação do tomcat ““$TOMCAT_HOME”. Se houver instância do tomcat ativa, um valor será armazenado, caso contrário, a variável ficará vazia.

b) uma condição avalia se a variável “a” está vazia ou não, se estiver vazia, uma mensagem de que o serviço já está em execução é exibida na tela; caso contrário, o tomcat é iniciado. Essa validação é essencial para evitar que duas instâncias do tomcat fiquem ativas.

 

3º) Procedimento de parada “stop”

 

stop() {
        echo -n "Shutting down tomcat: "
        cd $TOMCAT_HOME
        ${STOP_TOMCAT}
        a=`ps -ef |grep java | grep -m 1 "$TOMCAT_HOME" | awk '{ print $2 }'`
       `kill -9 "$a"`
       echo -e "  33[1;31m kill PID $a  33[0m"   
}

 

a) O procedimento de parada chama o serviço de shutdown do tomcat para parar o serviço;

b) Visto que o serviço de “shutdown” do tomcat em alguns momentos não responde, principalmente, quando se inicia e tentar parar no mesmo instante, foi incrementado um “kill” sobre o processo do tomcat, para caso o “shutdown” falhe. Este procedimento consiste em capturar o PID “variável ‘a’ “, e executar um kill sobre o mesmo.

 

4º) Procedimento para captura e exibição do status do serviço:

 

status(){ 
 echo “”
 echo -e “33[1;50m STATUS SERVICO TOMCAT OOBJ: 33[0m”
 echo “”

 STATE=0
 STATE=`ps -ef |grep java|grep tomcat|wc -l`
 echo -e “Servico : 33[1;29m + TOMCAT + 33[0m”

 if [ “$STATE” -ge “1” ] ; then
 echo -e ”     + STATUS:  33[1;32m Rodando  33[0m”
 else
 echo -e ”     + STATUS:  33[1;31m Inativo  33[0m”
 fi
 echo “”
 a=`ps -ef |grep java | grep -m 3 “$TOMCAT_HOME” | awk ‘{ print $2 }’`
 echo -e ”     + PID:  33[1;31m $a  33[0m”
 echo “” 
 }

 

a) exibe-se a mensagem “status servico tomcat Oobj”, esta mensagem você deve alterar para a que desejar.

b) A variável “STATE” recebe o valor 0, e faz uma busca pelo serviço, se o mesmo estiver ativo, recebe o valor 1; uma condicional verifica se o valor armazenado é 1, caso seja, exibe que o serviço está “rodando”, caso seja 0, exibe a mensagem “inativo”;

c) Também foi incrementado a escrita do PID do tomcat junto com o status, com a visão de facilitar a identificação e monitoramento via “top”.

 

5º)  Trecho que captura os comandos dos usuários e executam as ações:

 

#acoes executadas de acordo com parametros passados via console 
    case "$1" in

        start)
            start
        ;;

        stop)
            stop
        ;;

        restart)
            stop
            sleep 10
            start
        ;;

        status)        
    status
        ;;        
        *)

    echo "Usage: {start|stop|restart|status}"
    esac

 

a) Por ultimo há um “case” que captura o comando digitado, e seleciona a ação a ser executada.

– start: chama o procedimento de inicialização;

– stop: chama o procedimento de parada;

– restart: chama o “stop”, aguarda 10 segundos e chama o “start”

– status: chama o procedimento de status

– caso não seja digitado um comando, é exibido o “usage” com as opções de uso do script.

 

Para quem quiser baixar o script completo, clique aqui: Script Completo

 

Parte 2 – Configurando script como serviço usando o “chkconfig”

Criar link simbólico na pasta “/etc/init.d/tomcat”:

 

ln -s /opt/oobj/aplicativos/tomcat/bin/tomcat  /etc/init.d/tomcat 

 

onde: “/opt/oobj/aplicativos/tomcat/bin/tomcat” é o caminho onde está o arquivo “tomcat”.

Configurar permissão, e adiciona a configuração ao SO:

 

chmod 755 /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig --level 234 tomcat on

 

Pronto, feito isto o script já está configurado para ser utilizado como serviço no linux e com todos os comandos necessário para facilitar sua utilização.

Agora é só aproveitar as facilidades.

 

Parte 3 –  Vendo como funciona na prática

 

Listar comandos do script: service tomcat

 

 

Iniciar serviço do Tomcat: service tomcat start

 

 

 

 

 

Validação de serviço iniciado, impedindo que duas instâncias do Tomcat fiquem em execução

 

 

 

Parar o Tomcat: service tomcat stop

 

 

 

 

 

 

Reiniciar serviço do Tomcat: service tomcat restart

 

 

 

 

 

 

 

 

Lista status do serviço: service tomcat status

 

 

 

 

 

 

 

 

 

 

 

 

Gostou? Curta e compartilhe com seus amigos!

Autor: Joânio Trade

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ir para o topo