примерный rc скрипт для фрибсды 7~oracle/.profile
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
ORACLE_OWNER=oracle
ORACLE_SID=XE
SQLPLUS=$ORACLE_HOME/bin/sqlplus
LSNR=$ORACLE_HOME/bin/lsnrctl
export ORACLE_HOME
export ORACLE_SID
export ORACLE_OWNER
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
/usr/local/etc/rc.d/oracle
#!/bin/sh
# $FreeBSD: oracle.in,v 1.0 2009/08/29 06:11:16 shved Exp $
#
# PROVIDE: oracle
# REQUIRE: LOGIN
# KEYWORD: shutdown
# Oracle Database 10g Express Edition Instance
#
# Add the following lines to /etc/rc.conf to enable Oracle:
# oracle_enable (bool): Set to "NO" by default.
# Set it to "YES" to enable Oracle.
#
. /etc/rc.subr
banner="Oracle Database 10g Express Edition Instance"
name="oracle"
rcvar=`set_rcvar`
load_rc_config ${name}
: ${oracle_enable="NO"}
start_precmd="oracle_env_precmd"
start_cmd="oracle_start_cmd"
stop_precmd="oracle_env_precmd"
stop_cmd="oracle_stop_cmd"
oracle_env_precmd()
{
. ~oracle/.profile
}
oracle_start_cmd()
{
echo -n "Starting ${banner}"
pmon=`ps -U $ORACLE_OWNER | egrep pmon_$ORACLE_SID'\>' | grep -v grep`
if [ "$pmon" = "" ];
then
echo -n "."
su -s $ORACLE_OWNER -c "$LSNR start" > /dev/null 2>&1
echo -n "."
su -s $ORACLE_OWNER -c "$SQLPLUS -s /nolog @$ORACLE_HOME/config/scripts/startdb.sql" > /dev/null 2>&1
echo ". Done"
else
echo "... Already"
fi
}
oracle_stop_cmd()
{
echo -n "Stopping ${banner}"
pmon=`ps -U $ORACLE_OWNER | egrep pmon_$ORACLE_SID'\>' | grep -v grep`
if [ "$pmon" != "" ];
then
echo -n "."
su -s $ORACLE_OWNER -c "$SQLPLUS -s /nolog @$ORACLE_HOME/config/scripts/stopdb.sql" > /dev/null 2>&1
echo -n "."
su -s $ORACLE_OWNER -c "$LSNR stop" > /dev/null 2>&1
echo ". Done"
else
echo "... Already"
fi
}
run_rc_command "$1"