#!/bin/sh # chkconfig: 345 87 60 # description: Totvs DBAccess. # processname: totvsdbaccess ### BEGIN INIT INFO # Provides: totvsdbaccess # Required-Start: $network # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Totvs DBAccess start/stop script. # Description: Totvs DBAccess daemon. ### END INIT INFO # Author: Renan Fragoso . /etc/rc.d/init.d/functions PIDFILE=/var/run/totvsdbaccess.pid DAEMON=${INSTALL_PATH}/dbaccess/dbaccess64 dbaccess_start(){ # Declara variavel de ambiente para carga de libs .so export LD_LIBRARY_PATH="${INSTALL_PATH}/dbaccess;"$LD_LIBRARY_PATH # ulimits podem ser adicionados ao /etc/security/limits.con (ou equivalente) # e posteriormente adicionada chamada do pam_limits.so no arquivo/etc/pam.d/common-session # (realizar este procedimento com cautela pois pode danificar o login na maquina) #ulimit -n 32768 #ulimit -s 1024 #ulimit -m 2048000 #ulimit -v 2048000 daemon --pidfile $PIDFILE $DAEMON daemon > /dev/null return $? } dbaccess_stop(){ killproc -p $PIDFILE -TERM $DAEMON RETVAL=$? return $RETVAL } dbaccess_restart(){ STATS=`status -p $PIDFILE dbacess64 -q | grep running` if [ -n "$STATS" ]; then echo -n "Stopping Totvs DBAccess ..." appserver_stop case "$?" in 0) success echo "" #sleep 5 ;; 1|2) failure exit 1 ;; esac fi #aguarda o tempo do stop echo -n "Starting Totvs DBAccess ..." for (( n=1; n<15; n++ )) do PID=`cat $PIDFILE > /dev/null 2>&1` STATS=`ps xh -o comm,pid | awk '{print $2}' | grep "$PID"` > /dev/null if [ -z $STATS ]; then rm -f $PIDFILE appserver_start case "$?" in 0) success update_pid echo "" ;; 1|2) failure ;; esac n=20 else echo -n "." sleep 1 fi done } update_pid(){ STRTOF=$(echo "$DAEMON" | sed -e 's/\//\\\//g') PID=`ps h -o pid,cmd | sed -n {/$STRTOF/p} | awk '{print $1}'` if [ -n "$PID" ]; then echo $PID > $PIDFILE fi } case "$1" in start) echo -n "Starting Totvs DBAccess ..." dbaccess_start case "$?" in 0) update_pid success ;; 1|2) failure ;; esac echo "" ;; stop) echo -n "Stopping Totvs DBAccess ..." dbaccess_stop case "$?" in 0) success rm -f $PIDFILE ;; 1|2) failure ;; esac echo "" ;; restart) echo "Restarting Totvs DBAccess ..." dbaccess_restart ;; status) status -p $PIDFILE dbaccess ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 3 ;; esac exit 0