понедельник, 26 апреля 2010 г.

Sberbank 500

Some technical details about top Russian bank

вторник, 13 апреля 2010 г.

JBoss init.d startup script

#!/bin/sh
#
# jboss         JBoss application server
# chkconfig:    345 98 2
# description:  JBoss application server startup script
#


#
# modified by sergerus@gmail.com
#
# $Id: jboss_init_redhat.sh 60992 2007-02-28 11:33:27Z dimitris@jboss.org $
#
# JBoss Control Script
#
# To use this script run it as root - it will switch to the specified user
#
# Here is a little (and extremely primitive) startup/shutdown script
# for RedHat systems. It assumes that JBoss lives in /usr/local/jboss,
# it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin.
# All this can be changed in the script itself.
#
# Either modify this script for your requirements or just ensure that
# the following variables are set correctly before calling the script.


JBOSS_SERVICE_NAME=${JBOSS_SERVICE_NAME:-"JBoss"}

#define where jboss is - this is the directory containing directories log, bin, conf etc
JBOSS_HOME=${JBOSS_HOME:-"/opt/jboss"}
if [ ! -d "$JBOSS_HOME" ]; then
  echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
  exit 1
fi

export LAUNCH_JBOSS_IN_BACKGROUND=${LAUNCH_JBOSS_IN_BACKGROUND:-"1"}

JBOSS_PIDFILE=${JBOSS_PIDFILE:-"$JBOSS_HOME/jboss.pid"}

#define the user under which jboss will run, or use 'RUNASIS' to run as the current user
JBOSS_USER=${JBOSS_USER:-"jboss"}

#configuration to use, usually one of 'minimal', 'default', 'all'
JBOSS_CONF=${JBOSS_CONF:-"default"}

#if JBOSS_HOST specified, use -b to bind jboss services to that address
JBOSS_HOST=0.0.0.0
JBOSS_BIND_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"}

#define the classpath for the shutdown class
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}

#define the script to use to start jboss
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"}

#define what will be done with the console log
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}

JBOSS_START_TIMEOUT=${JBOSS_START_TIMEOUT:-"300"}
JBOSS_STOP_TIMEOUT=${JBOSS_STOP_TIMEOUT:-"60"}

is_jboss_running() {
    [ -f $JBOSS_PIDFILE ] || return 1
    PID=$(cat $JBOSS_PIDFILE)
    [ ! -z $PID ] || return 1
    ps -p $PID >/dev/null 2>/dev/null || return 1
    return 0
}

if [ "$JBOSS_USER" = "RUNASIS" ]; then
  SUBIT=""
else                            
  SUBIT="su - $JBOSS_USER -c "
fi        

if [ -n "$JBOSS_CONSOLE" ] ; then
  if [ -e $JBOSS_CONSOLE ] ; then
    if [ -f $JBOSS_CONSOLE ] ; then
      touch $JBOSS_CONSOLE         
      [ ! -z "$SUBIT" ] && chown $JBOSS_USER $JBOSS_CONSOLE
    fi                                                     
  else                                                     
    touch $JBOSS_CONSOLE                                   
    [ ! -z "$SUBIT" ] && chown $JBOSS_USER $JBOSS_CONSOLE  
  fi                                                       
else                                                       
  JBOSS_CONSOLE=/dev/null                                  
fi                                                         

JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}

case "$1" in
start)      
    echo "Starting $JBOSS_SERVICE_NAME..."
    if [ -f $JBOSS_PIDFILE ] ; then       
      if is_jboss_running ; then          
          echo "$JBOSS_SERVICE_NAME seems already running!!"
          exit 1                                            
      else                                                  
         # dead pid file - remove                           
         rm -f $JBOSS_PIDFILE                               
      fi                                                    
    fi                                                      

    touch $JBOSS_PIDFILE
    [ ! -z "$SUBIT" ] && chown $JBOSS_USER $JBOSS_PIDFILE

    if [ -z "$SUBIT" ]; then
        eval "              
          $JBOSS_CMD_START >$JBOSS_CONSOLE 2>&1 &
          echo \$! >$JBOSS_PIDFILE               
        "                                        
    else                                         
        $SUBIT "                                 
          $JBOSS_CMD_START >$JBOSS_CONSOLE 2>&1 & 
          echo \$! >$JBOSS_PIDFILE                
        "                                         
    fi                                            
    RETVAL=1                                      
    TIMER=$JBOSS_START_TIMEOUT                    
    while [ $RETVAL -ne 0 -a $TIMER -gt 0 ] ; do  
      echo -n .                                   
      sleep 1                                     
      #nc -w 1 -z localhost 8080 >/dev/null 2>&1  
      curl -s -m 1 http://localhost:8080 >/dev/null 2>&1
      RETVAL=$?
      let TIMER=$TIMER-1
    done
    if [ $RETVAL -eq 0 ]; then
      echo "$JBOSS_SERVICE_NAME started."
    else
      echo "$JBOSS_SERVICE_NAME start timeout. failed!"
    fi
    ;;                                                  
stop)
    echo "Stopping $JBOSS_SERVICE_NAME..."
    if is_jboss_running ; then
      PID=$(cat $JBOSS_PIDFILE)
      if [ -z "$SUBIT" ]; then
          $JBOSS_CMD_STOP
      else
          $SUBIT "$JBOSS_CMD_STOP"
      fi
      TIMER=$JBOSS_STOP_TIMEOUT
      while is_jboss_running && [ $TIMER -gt 0 ] ; do
        echo -n .
        sleep 1
        let TIMER=$TIMER-1
      done
      if is_jboss_running ; then
        kill -INT $PID
        sleep 3
        if is_jboss_running ; then
          kill -TERM $PID
          sleep 3
          if is_jboss_running ; then
            kill -KILL $PID
            sleep 3
            if is_jboss_running ; then
              echo "WARN: Can't kill  $JBOSS_SERVICE_NAME"
              exit 1
            fi
          fi;
        fi;
      fi
      rm -f $JBOSS_PIDFILE
      echo "$JBOSS_SERVICE_NAME stopped."
    else
      echo "$JBOSS_SERVICE_NAME seems not running!"
    fi
    ;;
restart)
    $0 stop
    $0 start
    ;;
check)
    echo "JBOSS_SERVICE_NAME = $JBOSS_SERVICE_NAME"
    echo "JBOSS_HOME = $JBOSS_HOME"
    echo "JBOSS_PIDFILE = $JBOSS_PIDFILE"
    echo "JBOSS_USER = $JBOSS_USER"
    echo "JBOSS_CONF = $JBOSS_CONF"
    echo "JBOSS_HOST = $JBOSS_HOST"
    echo "JBOSS_BIND_ADDR = $JBOSS_BIND_ADDR"
    echo "JBOSSCP = $JBOSSCP"
    echo "JBOSSSH = $JBOSSSH"
    echo "JBOSS_CONSOLE = $JBOSS_CONSOLE"
    echo "JBOSS_START_TIMEOUT = $JBOSS_START_TIMEOUT"
    echo "JBOSS_STOP_TIMEOUT = $JBOSS_STOP_TIMEOUT"
    echo "JBOSS_CMD_START = $JBOSS_CMD_START"
    echo "JBOSS_CMD_STOP = $JBOSS_CMD_STOP"
    ;;
*)
    echo "usage: $0 (start|stop|restart|check|help)"
esac