Como criar Identificação de Processo???

1. Como criar Identificação de Processo???

Giovane Nunes
gvenunes

(usa Debian)

Enviado em 08/06/2013 - 01:08h

Olá pessoal,

criei recentemente um shell e está funcionando muito bem na produção.
um problema e que não está sendo possivel identificar ele dentre os outros processos do servidor;
pois ele aparece como JAVA, e executado pelo root, e temos em torno de 3 processos com a mesma caracteristica;
gostaria de identificar cada um deles, pelo nome por exemplo script do jboss,batch e loader;
assim consigo monitorar cada processo pelo nome e não pelo PID;

Outra ideia e melhorar a visualização do status de cada processo;

colocando um simples [OK] ou retornar [ERRO]
tipo quando e reiniciado o mysql, que quando apresentado [OK] ele aparece em Verde, e [ERRO} em vermelho;
assim os tecnicos internos, visualizam mais rapidamente e vem de ficar lendo na tela o status que e apresentado.

obrigado;
Abaixo o Script, atual:


#!/bin/bash
#Descrição: Iniciar batch como serviço
#Coautor: Giovane
#
### Preencha essas variaveis:
#
IP=0.0.0.0
NAME="BATCH"
JBOSS_HOME="/home/jboss"
PGREP_STRING="$JBOSS_HOME/contabatch/contabatch.jar"
PID_FILE="/var/run/batch.pid"
LOG="$JBOSS_HOME/contabatch/batch.log"
CLASSPATH="$JBOSS_HOME/contabatch/contabatch_lib"
USER="root"
#
START_CMD="java -Xms384m -Xmx512m -cp "$CLASSPATH" -jar "$PGREP_STRING" --host $IP > $LOG 2>&1 &"
#
#
###Não Altere nada além das variaveis acima###

CUR_USER='root'

killproc() {
pkill -u $USER -f $PGREP_STRING
}

start_daemon() {
eval "$*"
}

log_success_msg() {
echo "$*"
logger "$_"
}

log_failure_msg() {
echo "$*"
logger "$_"
}

check_proc() {
pgrep -u $USER -f $PGREP_STRING >/dev/null
}

start_script() {
if [ "${CUR_USER}" != "root" ] ; then
log_failure_msg "$NAME so pode ser iniciado como 'root'."
exit -1
fi

check_proc
if [ $? -eq 0 ]; then
log_success_msg "$NAME ja está em execucao!!!."
exit 0
fi

[ -d /var/run/$NAME ] || (mkdir /var/run/$NAME )

# executar agora
# start_daemon /bin/su $USER -c $START_CMD
start_daemon $START_CMD

# aguardar por um tempo para verificar se o programa responde
sleep 5
check_proc

if [ $? -eq 0 ]; then
log_success_msg "Iniciado $NAME."
else
log_failure_msg "Erro ao Iniciar $NAME."
exit -1
fi
}

stop_script() {
if [ "${CUR_USER}" != "root" ] ; then
log_failure_msg "Voce nao tem permissao para executar $NAME."
exit -1
fi

check_proc
if [ $? -eq 0 ]; then
killproc -p $PID_FILE >/dev/null

# Certificando que o programa foi encerrado antes de iniciar
until [ $? -ne 0 ]; do
sleep 1
check_proc
done

check_proc
if [ $? -eq 0 ]; then
log_failure_msg "Erro ao Parar $NAME."
exit -1
else
log_success_msg "Encerrado $NAME."
fi
else
log_failure_msg "$NAME nao esta em execucao ou voce nao tem permissao para encerrar este programa"
fi
}

check_status() {
check_proc
if [ $? -eq 0 ]; then
log_success_msg "$NAME em Execucao."
else
log_failure_msg "$NAME foi Encerrado."
exit -1
fi
}

check_log() {
check_proc
if [ $? -eq 0 ]; then
log_success_msg "Lendo $NAME."
tail -f $LOG
else
log_failure_msg "Erro ao ler log do $NAME"
exit -1
fi
}

case "$1" in
start)
start_script
;;
stop)
stop_script
;;
restart)
stop_script
start_script
;;
status)
check_status
;;
log)
check_log
;;
*)
echo "Usage: $0 {start|stop|restart|log|status}"
exit 1
esac

exit 0



  


2. Re: Como criar Identificação de Processo???

3. Re: Como criar Identificação de Processo???

Giovane Nunes
gvenunes

(usa Debian)

Enviado em 14/06/2013 - 12:09h

cara, obrigado muito bom os materiais, vou ler e estudar e após tentar implementar no script estas condições. Obrigado.


4. Re: Como criar Identificação de Processo???

Giovane Nunes
gvenunes

(usa Debian)

Enviado em 14/06/2013 - 22:22h



Kara de acordo com este material, consegui implementar a visualização de [OK] e [FALSO], no script, fico da seguinte forma:

/*
status_success="{TTEXTO}33[;32m [OK] {TTEXTO}33[m"
status_fail="{TTEXTO}33[;31m [FAILED] {TTEXTO}33[m"

log_success_msg() {
echo -e "$* $status_success"
logger "$_"
}

log_failure_msg() {
echo -e "$* $status_fail"
logger "$_"
}
*/
Assim nas execuções eu chamo o log_msg, e de acordo com o resultado ele trás a mensagem do Status;
Gostei bastante, pois ficou fácil de dar manutenção e bem pratico.

Agora e partir para outro passo de identificar o processo de acordo com o nome do processo!!!

Vlw :)


5. Re: Como criar Identificação de Processo???

Buckminster
Buckminster

(usa Debian)

Enviado em 14/06/2013 - 22:52h

De nada.
Precisando, estamos aí.
E parabéns!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts