#!/bin/sh # chkconfig: 345 88 60 # description: Ctree Server. # processname: ctreeserver ### BEGIN INIT INFO # Provides: ctreeserver # Required-Start: $network # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Ctree Server start/stop script. # Description: Ctree Server daemon. ### END INIT INFO # Author: Renan Fragoso . /etc/rc.d/init.d/functions PIDFILE=/var/run/ctreeserver.pid DAEMON=${INSTALL_PATH}/ctreeserver/bin/ace/isam/ctsrvr ctreeserver_start(){ # Declara variavel de ambiente para carga de libs .so export LD_LIBRARY_PATH="${INSTALL_PATH}/ctreeserver/bin/ace/isam;"$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 1024000 ulimit -v 1024000 cd ${INSTALL_PATH}/ctreeserver/bin/ace/isam $DAEMON 1>> ${INSTALL_PATH}/ctreeserver/bin/ace/isam/ctsrvr.log 2>> ${INSTALL_PATH}/ctreeserver/bin/ace/isam/ctsrvr.log & return $? } ctreeserver_stop(){ killproc -p $PIDFILE -TERM $DAEMON RETVAL=$? return $RETVAL } ctreeserver_restart(){ STATS=`status -p $PIDFILE ctsrvr -q | grep running` if [ -n "$STATS" ]; then echo -n "Stopping Ctree Server ..." ctreeserver_stop case "$?" in 0) success echo "" #sleep 5 ;; 1|2) failure exit 1 ;; esac fi #aguarda o tempo do stop echo -n "Starting Ctree Server ..." 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 ctreeserver_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 Ctree Server ..." ctreeserver_start case "$?" in 0) update_pid success ;; 1|2) failure ;; esac echo "" ;; stop) echo -n "Stopping Ctree Server ..." ctreeserver_stop case "$?" in 0) success rm -f $PIDFILE ;; 1|2) failure ;; esac echo "" ;; restart) echo "Restarting Ctree Server ..." ctreeserver_restart ;; status) status -p $PIDFILE ctsrvr ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 3 ;; esac exit 0