oracle开机自启动,关机或重启关闭的脚本,详细使用方法,请见注释部分,修改后同样适用于含grid用户场景,希望对大家有用;

#!/bin/bash
# touch ora_service
# chmod 755 ora_service
# cp ora_service /etc/init.d/.
# cp ora_service /usr/bin/.
# chkconfig --add ora_service
# chkconfig --list ora_service
# processname: ora_service
# Startup script for the dzwl software
# description: startup,restart,stop for ORACLE program
# chkconfig: 345 99 1
prog=ORACLE
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

RETVAL=0
IRETRY=0
start() {
#    echo -n $"Starting $prog: "
touch /var/lock/subsys/ora_service
    su - oracle <<EOF
    lsnrctl start
    sqlplus /nolog
    conn /as sysdba
    startup
    quit
    exit
EOF

    RETVAL=$?
    [ $RETVAL = 0 ] && {
                success $"$prog"
        }
        echo
    return $RETVAL
}

status ()
{
     #echo -n $"Status $prog: "
     ps -ef |grep ora_|grep -v grep
}

stop()
{
    echo -n $"Shutting down $prog: "
     su - oracle <<EOF
     lsnrctl stop
     sqlplus /nolog
     conn /as sysdba
     shutdown immediate
     quit
     exit
EOF
    RETVAL=$?
    echo
}

abort()
{
 echo -n $"Shutting abort $prog: "
     su - oracle <<EOF
     lsnrctl stop
     sqlplus /nolog
     conn /as sysdba
     shutdown abort
     quit
     exit
EOF
}

 

# See how we were called.
case "$1" in
    start)
        start
        ;;
   status)
        status
        ;;
    stop)
        stop
        ;;
    abort)
        abort
        ;;
    restart|reload)
        stop
        sleep 3
        start
        RETVAL=$?
        ;;
    *)
    echo $"Usage: $0 {start|status|stop|restart|abort}"
    exit 1
esac

exit $RETVAL