Skip to content

Instantly share code, notes, and snippets.

@vmassuchetto
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vmassuchetto/4252befa6456af25a775 to your computer and use it in GitHub Desktop.
Save vmassuchetto/4252befa6456af25a775 to your computer and use it in GitHub Desktop.
Variáveis de ambiente para o initscript do Totvs Microsiga Protheus: License server, cTree, DBAccess, Appserver e Workflow
#!/bin/bash
#
# Arquivo de ambiente para o Totvs Microsiga Protheus. Serve como suporte para
# um arquivo principal de execução disponível em:
# https://gist.github.com/vmassuchetto/d43886fa0726feb73b73
#
# Definição do ambiente
if [ -z "$PROTHEUS_ENV" ]; then
export PROTHEUS_ENV="producao";
fi
# Preparação
mkdir -p /var/log/protheus > /dev/null 2>&1
ulimit -n 65635 > /dev/null 2>&1
# Variáveis de sistema
export HOSTNAME="linux"
export HOST="linux"
export SHELL="/bin/bash"
export USER="root"
export HOME="/root"
export HOSTTYPE="amd6"
# Variáveis do script
export CURRENT_DIR=`pwd`
# Caminhos de base
export PWD_ROOT="/root/totvs"
# Logs
export PWD_LOGS="/var/log/protheus"
# Protheus
export PWD_PROTHEUS="$PWD_ROOT/protheus/$PROTHEUS_ENV"
# TSS
export PWD_TSS="$PWD_ROOT/tss/$PROTHEUS_ENV"
# Aplicações
# License server
export BIN_LICENSE_SERVER="$PWD_ROOT/licenseserver/totvslicense/bin/totvssrvlinux"
# cTree start
export BIN_CTREE_SERVER_START="$PWD_PROTHEUS/ctree/bin/ace/isam/ctsrvr"
# cTree stop
export BIN_CTREE_CLIENT_STOP="$PWD_PROTHEUS/ctree/tools/cmdline/admin/client/ctstop -auto"
# DBAccess
export BIN_DBACCESS="$PWD_PROTHEUS/dbaccess/multi/dbaccess64opt"
# DBAccess TSS
export BIN_DBACCESS_TSS="$PWD_TSS/dbaccess/multi/dbaccess64opt_tss"
# Appserver master
export BIN_APPSERVER_MASTER="$PWD_PROTHEUS/protheus11/bin/master/appsrvlinux"
# Appserver balance
export BIN_APPSERVER_SLAVE1="$PWD_PROTHEUS/protheus11/bin/balance1/appsrvlinux"
export BIN_APPSERVER_SLAVE2="$PWD_PROTHEUS/protheus11/bin/balance2/appsrvlinux"
export BIN_APPSERVER_SLAVE3="$PWD_PROTHEUS/protheus11/bin/balance3/appsrvlinux"
export BIN_APPSERVER_SLAVE4="$PWD_PROTHEUS/protheus11/bin/balance4/appsrvlinux"
# Appserver compilacoes
export BIN_APPSERVER_COMPILE="$PWD_PROTHEUS/protheus11/bin/compila/appsrvlinux"
# Appserver TSS
export BIN_APPSERVER_TSS="$PWD_TSS/totvssped11/bin/appserver/appsrvlinux"
# Appserver Workflow
export BIN_APPSERVER_WORKFLOW="$PWD_PROTHEUS/protheus11/bin/wf/appsrvlinux"
# Logs
# License server
export LOG_LICENSE_SERVER="$PWD_LOGS/$PROTHEUS_ENV-licenseserver.log"
# cTree
export LOG_CTREE_SERVER="$PWD_LOGS/$PROTHEUS_ENV-ctree.log"
# DBAccess
export LOG_DBACCESS="$PWD_LOGS/$PROTHEUS_ENV-dbaccess.log"
# DBAccess TSS
export LOG_DBACCESS_TSS="$PWD_LOGS/$PROTHEUS_ENV-dbaccess-tss.log"
# Appserver master
export LOG_APPSERVER_MASTER="$PWD_LOGS/$PROTHEUS_ENV-appserver-master.log"
# Appserver balance
export LOG_APPSERVER_SLAVE1="$PWD_LOGS/$PROTHEUS_ENV-appserver-balance1.log"
export LOG_APPSERVER_SLAVE2="$PWD_LOGS/$PROTHEUS_ENV-appserver-balance2.log"
export LOG_APPSERVER_SLAVE3="$PWD_LOGS/$PROTHEUS_ENV-appserver-balance3.log"
export LOG_APPSERVER_SLAVE4="$PWD_LOGS/$PROTHEUS_ENV-appserver-balance4.log"
# Appserver compilacoes
export LOG_APPSERVER_COMPILE="$PWD_LOGS/$PROTHEUS_ENV-appserver-compila.log"
# Appserver TSS
export LOG_APPSERVER_TSS="$PWD_LOGS/$PROTHEUS_ENV-appserver-tss.log"
# Appserver Workflow
export LOG_APPSERVER_WORKFLOW="$PWD_LOGS/$PROTHEUS_ENV-appserver-workflow.log"
# Bibliotecas
export LC_ALL=C
export LD_LIBRARY_PATH="$PWD_PROTHEUS/protheus11/bin/appserver/libnfe/:$PWD_PROTHEUS/dbaccess/multi/:$PWD_TSS/dbaccess/multi/:$LD_LIBRARY_PATH"
function show_usage {
echo "Modo de uso:"
echo ""
echo " service protheus {start|stop|restart|status}"
}
function contains {
for word in $1; do
[[ $word = $2 ]] && return 0
done
return 1
}
function wait_kill {
for PID in "$@"; do
while kill -0 "$PID" > /dev/null 2>&1 ; do
kill -9 "$PID"
sleep 0.5
done
echo -n " $PID "
done
}
function stop {
if [ -e $BIN_LICENSE_SERVER ] && [ "$PROTHEUS_ENV" == "producao" ] ; then
echo -ne "Parando License server...\t\t"
wait_kill `pidof -x "$BIN_LICENSE_SERVER"`
echo "OK"
fi
if [ -e $BIN_CTREE_SERVER_STOP ] ; then
echo -ne "Parando cTree...\t\t\t"
PID=`pidof -x "$BIN_CTREE_SERVER_START"`
while `pidof -x "$BIN_CTREE_SERVER_START"` > /dev/null 2>&1 ; do
$BIN_CTREE_CLIENT_STOP
done
if [ -z $PID ]; then
echo "OK"
else
echo "${PID} OK"
fi
fi
if [ -e $BIN_DBACCESS ] ; then
echo -ne "Parando DBAccess...\t\t\t"
wait_kill `pidof -x "$BIN_DBACCESS"`
echo "OK"
fi
if [ -e $BIN_DBACCESS_TSS ] ; then
echo -ne "Parando DBAccess TSS...\t\t\t"
wait_kill `pidof -x "$BIN_DBACCESS_TSS"`
echo "OK"
fi
if [ -e $BIN_APPSERVER_MASTER ] ; then
echo -ne "Parando Appserver master..\t\t"
wait_kill `pidof -x "$BIN_APPSERVER_MASTER"`
echo "OK"
fi
if [ -e $BIN_APPSERVER_SLAVE1 ] ; then
echo -ne "Parando Appserver balance1...\t\t"
wait_kill `pidof -x "$BIN_APPSERVER_SLAVE1"`
echo "OK"
fi
if [ -e $BIN_APPSERVER_SLAVE2 ] ; then
echo -ne "Parando Appserver balance2...\t\t"
wait_kill `pidof -x "$BIN_APPSERVER_SLAVE2"`
echo "OK"
fi
if [ -e $BIN_APPSERVER_SLAVE3 ] ; then
echo -ne "Parando Appserver balance3...\t\t"
wait_kill `pidof -x "$BIN_APPSERVER_SLAVE3"`
echo "OK"
fi
if [ -e $BIN_APPSERVER_SLAVE4 ] ; then
echo -ne "Parando Appserver balance4...\t\t"
wait_kill `pidof -x "$BIN_APPSERVER_SLAVE4"`
echo "OK"
fi
if [ -e $BIN_APPSERVER_COMPILE ] ; then
echo -ne "Parando Appserver compila...\t\t"
wait_kill `pidof -x "$BIN_APPSERVER_COMPILE"`
echo "OK"
fi
if [ -e $BIN_APPSERVER_TSS ] ; then
echo -ne "Parando Appserver TSS...\t\t"
wait_kill `pidof -x "$BIN_APPSERVER_TSS"`
echo "OK"
fi
if [ -e $BIN_APPSERVER_WORKFLOW ] ; then
echo -ne "Parando Appserver Workflow...\t\t"
wait_kill `pidof -x "$BIN_APPSERVER_WORKFLOW"`
echo "OK"
fi
}
function start {
if [ -e $BIN_LICENSE_SERVER ] && [ "$PROTHEUS_ENV" == "producao" ] ; then
echo -ne "Iniciando License Server...\t\t"
stdbuf -oL $BIN_LICENSE_SERVER 3>&1 1>> $LOG_LICENSE_SERVER 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_LICENSE_SERVER` "
echo "OK"
fi
if [ -e $BIN_CTREE_SERVER_START ] ; then
echo -ne "Iniciando cTree...\t\t\t"
cd `dirname "$BIN_CTREE_SERVER_START"`
stdbuf -oL $BIN_CTREE_SERVER_START 3>&1 1>> $LOG_CTREE_SERVER 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_CTREE_SERVER_START` "
echo "OK"
cd $CURRENT_DIR
fi
if [ -e $BIN_DBACCESS ] ; then
echo -ne "Iniciando DBAccess...\t\t\t"
stdbuf -oL $BIN_DBACCESS 3>&1 1>> $LOG_DBACCESS 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_DBACCESS` "
echo "OK"
fi
if [ -e $BIN_DBACCESS_TSS ] ; then
echo -ne "Iniciando DBAccess TSS...\t\t"
stdbuf -oL $BIN_DBACCESS_TSS 3>&1 1>> $LOG_DBACCESS_TSS 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_DBACCESS_TSS` "
echo "OK"
fi
if [ -e $BIN_APPSERVER_MASTER ] ; then
echo -ne "Iniciando Appserver master...\t\t"
stdbuf -oL $BIN_APPSERVER_MASTER 3>&1 1>> $LOG_APPSERVER_MASTER 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_APPSERVER_MASTER` "
echo "OK"
fi
if [ -e $BIN_APPSERVER_SLAVE1 ] ; then
echo -ne "Iniciando Appserver balance 1...\t"
stdbuf -oL $BIN_APPSERVER_SLAVE1 3>&1 1>> $LOG_APPSERVER_SLAVE1 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_APPSERVER_SLAVE1` "
echo "OK"
fi
if [ -e $BIN_APPSERVER_SLAVE2 ] ; then
echo -ne "Iniciando Appserver balance 2...\t"
stdbuf -oL $BIN_APPSERVER_SLAVE2 3>&1 1>> $LOG_APPSERVER_SLAVE2 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_APPSERVER_SLAVE2` "
echo "OK"
fi
if [ -e $BIN_APPSERVER_SLAVE3 ] ; then
echo -ne "Iniciando Appserver balance 3...\t"
stdbuf -oL $BIN_APPSERVER_SLAVE3 3>&1 1>> $LOG_APPSERVER_SLAVE3 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_APPSERVER_SLAVE3` "
echo "OK"
fi
if [ -e $BIN_APPSERVER_SLAVE4 ] ; then
echo -ne "Iniciando Appserver balance 4...\t"
stdbuf -oL $BIN_APPSERVER_SLAVE4 3>&1 1>> $LOG_APPSERVER_SLAVE4 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_APPSERVER_SLAVE4` "
echo "OK"
fi
if [ -e $BIN_APPSERVER_COMPILE ] ; then
echo -ne "Iniciando Appserver compila...\t\t"
stdbuf -oL $BIN_APPSERVER_COMPILE 3>&1 1>> $LOG_APPSERVER_COMPILE 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_APPSERVER_COMPILE` "
echo "OK"
fi
if [ -e $BIN_APPSERVER_TSS ] ; then
echo -ne "Iniciando Appserver TSS...\t\t"
stdbuf -oL $BIN_APPSERVER_TSS 3>&1 1>> $LOG_APPSERVER_TSS 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_APPSERVER_TSS` "
echo "OK"
fi
if [ -e $BIN_APPSERVER_WORKFLOW ] ; then
echo -ne "Iniciando Appserver workflow...\t\t"
stdbuf -oL $BIN_APPSERVER_WORKFLOW 3>&1 1>> $LOG_APPSERVER_WORKFLOW 2>&1 &
sleep 2
echo -n " `pidof -x $BIN_APPSERVER_WORKFLOW` "
echo "OK"
fi
}
function status {
if [ -e $BIN_LICENSE_SERVER ] && [ "$PROTHEUS_ENV" == "producao" ] ; then
PID_LICENSE_SERVER=`pidof -x "$BIN_LICENSE_SERVER"`
echo -ne "PID License server\t\t"
[[ $PID_LICENSE_SERVER ]] && echo $PID_LICENSE_SERVER || echo "N"
fi
if [ -e $BIN_CTREE_SERVER_START ] ; then
PID_CTREE_SERVER=`pidof -x "$BIN_CTREE_SERVER_START"`
echo -ne "PID cTree\t\t\t"
[[ $PID_CTREE_SERVER ]] && echo $PID_CTREE_SERVER || echo "N"
fi
if [ -e $BIN_DBACCESS ] ; then
PID_DBACCESS=`pidof -x "$BIN_DBACCESS"`
echo -ne "PID DBAccess\t\t\t"
[[ $PID_DBACCESS ]] && echo $PID_DBACCESS || echo "N"
fi
if [ -e $BIN_DBACCESS_TSS ] ; then
PID_DBACCESS_TSS=`pidof -x "$BIN_DBACCESS_TSS"`
echo -ne "PID DBAccess TSS\t\t"
[[ $PID_DBACCESS_TSS ]] && echo $PID_DBACCESS_TSS || echo "N"
fi
if [ -e $BIN_APPSERVER_MASTER ] ; then
PID_APPSERVER_MASTER=`pidof -x "$BIN_APPSERVER_MASTER"`
echo -ne "PID Appserver master\t\t"
[[ $PID_APPSERVER_MASTER ]] && echo $PID_APPSERVER_MASTER || echo "N"
fi
if [ -e $BIN_APPSERVER_SLAVE1 ] ; then
PID_APPSERVER_SLAVE1=`pidof -x "$BIN_APPSERVER_SLAVE1"`
echo -ne "PID Appserver balance 1\t\t"
[[ $PID_APPSERVER_SLAVE1 ]] && echo $PID_APPSERVER_SLAVE1 || echo "N"
fi
if [ -e $BIN_APPSERVER_SLAVE2 ] ; then
PID_APPSERVER_SLAVE2=`pidof -x "$BIN_APPSERVER_SLAVE2"`
echo -ne "PID Appserver balance 2\t\t"
[[ $PID_APPSERVER_SLAVE2 ]] && echo $PID_APPSERVER_SLAVE2 || echo "N"
fi
if [ -e $BIN_APPSERVER_SLAVE3 ] ; then
PID_APPSERVER_SLAVE3=`pidof -x "$BIN_APPSERVER_SLAVE3"`
echo -ne "PID Appserver balance 3\t\t"
[[ $PID_APPSERVER_SLAVE3 ]] && echo $PID_APPSERVER_SLAVE3 || echo "N"
fi
if [ -e $BIN_APPSERVER_SLAVE4 ] ; then
PID_APPSERVER_SLAVE4=`pidof -x "$BIN_APPSERVER_SLAVE4"`
echo -ne "PID Appserver balance 4\t\t"
[[ $PID_APPSERVER_SLAVE4 ]] && echo $PID_APPSERVER_SLAVE4 || echo "N"
fi
if [ -e $BIN_APPSERVER_COMPILE ] ; then
PID_APPSERVER_COMPILE=`pidof -x "$BIN_APPSERVER_COMPILE"`
echo -ne "PID Appserver compila\t\t"
[[ $PID_APPSERVER_COMPILE ]] && echo $PID_APPSERVER_COMPILE || echo "N"
fi
if [ -e $BIN_APPSERVER_TSS ] ; then
PID_APPSERVER_TSS=`pidof -x "$BIN_APPSERVER_TSS"`
echo -ne "PID Appserver TSS\t\t"
[[ $PID_APPSERVER_TSS ]] && echo $PID_APPSERVER_TSS || echo "N"
fi
if [ -e $BIN_APPSERVER_WORKFLOW ] ; then
PID_APPSERVER_WORKFLOW=`pidof -x "$BIN_APPSERVER_WORKFLOW"`
echo -ne "PID Appserver workflow\t\t"
[[ $PID_APPSERVER_WORKFLOW ]] && echo $PID_APPSERVER_WORKFLOW || echo "N"
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment