#!/bin/sh # chkconfig: 345 99 10 # description: Oracle auto start-stop script. ORATAB="/etc/oratab" start () { ORACLE_OWNER=$1; ORACLE_HOME=$2; ORACLE_SID=$3; # Start the Oracle databases: su - $ORACLE_OWNER -c "export ORACLE_HOME=$ORACLE_HOME;export ORACLE_SID=$ORACLE_SID;$ORACLE_HOME/bin/sqlplus / as sysdba << EOF startup; quit; EOF;" & su - $ORACLE_OWNER -c "export ORACLE_HOME=$ORACLE_HOME;$ORACLE_HOME/bin/lsnrctl start" & } stop () { ORACLE_OWNER=$1; ORACLE_HOME=$2; ORACLE_SID=$3; # Stop the Oracle databases: su - $ORACLE_OWNER -c "export ORACLE_HOME=$ORACLE_HOME;export ORACLE_SID=$ORACLE_SID;$ORACLE_HOME/bin/sqlplus / as sysdba << EOF shutdown immediate; quit; EOF;" & su - $ORACLE_OWNER -c "export ORACLE_HOME=$ORACLE_HOME;$ORACLE_HOME/bin/lsnrctl stop" & } for i in $(cat $ORATAB | grep -v "^$" | grep -v "^#" | grep ":Y$") do ORACLE_OWNER=oracle ORACLE_SID=$(echo $i | cut -d':' -f1) ORACLE_HOME=$(echo $i | cut -d':' -f2) case "$1" in 'start') start $ORACLE_OWNER $ORACLE_HOME $ORACLE_SID; ;; 'stop') stop $ORACLE_OWNER $ORACLE_HOME $ORACLE_SID; ;; esac done