Nodemanager Init.d Script

Posted by john.graves(at)oracle.com on Oracle Blogs See other posts from Oracle Blogs or by john.graves(at)oracle.com
Published on Fri, 11 Mar 2011 17:10:44 +1100 Indexed on 2011/03/11 8:15 UTC
Read the original article Hit count: 288

Filed under:

I’ve seen many of these floating around.  This is my favourite on an Ubuntu based machine.

Just throw it into the /etc/init.d directory and update the following lines:

export MW_HOME=/opt/app/wls10.3.4
user='weblogic'

Then run:

update-rc.d nodemanager default

Everything else should be ok for 10.3.4.

#!/bin/sh
#
### BEGIN INIT INFO
# Provides:        nodemanager
# Required-Start:
# Required-Stop:
# Default-Start:    2 3 4 5
# Default-Stop:        0 1 6
# Short-Description:    WebLogic Nodemanager
### END INIT INFO

# nodemgr Oracle Weblogic NodeManager service
#
# chkconfig:   345 85 15
# description: Oracle Weblogic NodeManager service
# 

### BEGIN INIT INFO
# Provides: nodemgr
# Required-Start: $network $local_fs
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Oracle Weblogic NodeManager service.
# Description: Starts and stops Oracle Weblogic NodeManager.
### END INIT INFO

# Source function library.
. /lib/lsb/init-functions

# set Weblogic environment defining CLASSPATH and LD_LIBRARY_PATH
# to start/stop various components.
export MW_HOME=/opt/app/wls10.3.4
#
# Note:
# The setWLSEnv.sh not only does a good job of setting the environment,
# but also advertises the fact explicitly in the console! Silence it.
#
. $MW_HOME/wlserver_10.3/server/bin/setWLSEnv.sh > /dev/null

# set NodeManager environment
export NodeManagerHome=$WL_HOME/common/nodemanager
NodeManagerLockFile=$NodeManagerHome/nodemanager.log.lck

# check JAVA_HOME
if [ -z ${JAVA_HOME:-} ]; then
    export JAVA_HOME=/opt/sun/products/java/jdk1.6.0_18
fi

exec=$MW_HOME/wlserver_10.3/server/bin/startNodeManager.sh
prog='nodemanager'
user='weblogic'

is_nodemgr_running() {
    local nodemgr_cnt=`ps -ef        | \
        grep -i 'java '                  | \
        grep -i ' weblogic.NodeManager '  | \
        grep -v grep                  | \
        wc -l`
    echo $nodemgr_cnt
}

get_nodemgr_pid() {
    nodemgr_pid=0
    if [ `is_nodemgr_running` -eq 1 ]; then
        nodemgr_pid=`ps -ef             | \
            grep -i 'java '                 | \
            grep -i ' weblogic.NodeManager ' | \
            grep -v grep                 | \
            tr -s ' '                    | \
            cut -d' ' -f2`
    fi
    echo $nodemgr_pid
}

check_nodemgr_status () {
    local retval=0
    local nodemgr_cnt=`is_nodemgr_running`
    if [ $nodemgr_cnt -eq 0 ]; then
        if [ -f $NodeManagerLockFile ]; then
            retval=2
        else
            retval=3
        fi
    elif [ $nodemgr_cnt -gt 1 ]; then
        retval=4
    else
        retval=0
    fi

    echo $retval
}

start() {
    ulimit -n 65535
    [ -x $exec ] || exit 5
    echo -n $"Starting $prog: "
    su $user -c "$exec &"
    retval=$?
    echo
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    kill -s 9 `get_nodemgr_pid` &> /dev/null
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $NodeManagerLockFile
    return $retval
}

restart() {
    stop
    start
}

reload() {
    restart
}

force_reload() {
    restart
}

rh_status() {
    local retval=`check_nodemgr_status`
    if [ $retval -eq 0 ]; then
        echo "$prog (pid:`get_nodemgr_pid`) is running..."
    elif [ $retval -eq 4 ]; then
        echo "Multiple instances of $prog are running..."
    else
        echo "$prog is stopped"
    fi
    return $retval
}

rh_status_q() {
    rh_status >/dev/null  2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
        ;;
    *)
        echo -n "Usage: $0 {"
        echo -n "start|"
        echo -n "stop|"
        echo -n "status|"
        echo -n "restart|"
        echo -n "condrestart|"
        echo -n "try-restart|"
        echo -n "reload|"
        echo -n "force-reload"
        echo "}"

        exit 2
esac
exit $?

© Oracle Blogs or respective owner