1) 用 chkconfig --add 来安装,用 chkconfig --list 检查状态。
2) 用 ntsysv 来定制某个服务,是否伴随机器的启动而自动启动。
3) 在图形模式下,可以用 serviceconf 来启动、停止、重启服务。
4) 开机象系统服务那样显示 starting,关机显示 shutting down。
三、下面是具体的 dbora 脚本,在 Redhat 7.3 上通过,本人已经
验证了几十次,保证能运行。如果在您的系统不能运行,请告知。
备注:启动 lsnrctl 的时候不用 su- 而使用 su,否则失败,并且
要求使用 oracle 用户本身的 BASH_ENV。脚本开头的几个 ORA_xxx
参数都要依照实际情况写,否则会说找不到 Oracle 程序或者 pid。
DOS 格式方便发文,拷下来后请大家用 UltraEdit 转为 Unix 格式。
------------------------------------------------------------------------
#!/bin/bash
#
#/etc/rc.d/init.d/dbora
#
# Starts the dbora daemon
#
# chkconfig: 345 94 6
# description: Runs commands scheduled by the at command at the time \
#specified when at was run, and runs batch commands when the load \
#average is low enough.
# processname: dbora
#
# copyright: Written by Wwashington AT smth bbs, free to distribute. \
#You must keep everything in this file, including the copyright \
#announcement. Study demo: atd &postgresql in /etc/rc.d/init.d
# Source function library.
INITD=/etc/rc.d/init.d
. $INITD/functions
# Source system profile.
if [ -r /etc/profile ] then . /etc/profile fi
ORA_SID=udb01
ORA_USER=oracle
ORA_BASE=/udb01/app/oracle
ORA_HOME=/udb01/app/oracle/product/8.1.7
BASH_ENV=$ORA_BASE/.bashrc
test -x $ORA_HOME/bin/dbstart || exit 0
RETVAL=0
GREP_UNIX=`uname | awk '{if($1 ~ /(^SunOS|^HP-UX)/) print $1}'`
if ! [ "$GREP_UNIX" = "" ]
then
GREP_FLAG=ef
else
GREP_FLAG=efw
fi
RUNLEVEL=`runlevel | awk '{ print $2 }'`
# RUNLEVEL=6
case "$RUNLEVEL" in
3)
SH_FLAG=1
4)
SH_FLAG=1
5)
SH_FLAG=1
*)
SH_FLAG=0
esac
# Below is a debug info to display Show Flag
# echo RUNLEVEL=$RUNLEVEL , SH_FLAG=$SH_FLAG
#
#See how we were called.
#
prog="dbora"
start() {
# Check flag, if dbora already started, quit dbora
if [ ! -f /var/lock/subsys/dbora ]then
echo -n $"Starting $prog: "
# This is the background exec which can work under
# both CLI (dbora) and GUI mode (serviceconf). We
# must forward stderr to a file or null, otherwise
# dbora won't start with a return code in GUI mode
echo ""
echo "[oralog] ----->"
echo "Starting Oracle8i: "
echo "-------------------------------------------------------------------------"
# Please note that forward stderr(2) to /dev/null or &- means close stderr
su - $ORA_USER -c "$ORA_HOME/bin/dbstart >/tmp/ORA-dbuplog" 2>/dev/null
if [ $SH_FLAG -eq 1 ]then
cat /tmp/ORA-dbuplog
fi
echo
echo "Starting TNS Listener:"
echo "-------------------------------------------------------------------------"
su $ORA_USER -c "$ORA_HOME/bin/lsnrctl start >/tmp/ORA-lsnrlog" 2>&-
if [ $SH_FLAG -eq 1 ]then
cat /tmp/ORA-lsnrlog
fi
pid=`pidof -s ora_pmon_$ORA_SID`
if [ "$pid" == "" ]then
RETVAL=1
else
RETVAL=0
fi
[ $RETVAL -eq 0 ] &&touch /var/lock/subsys/dbora
echo
fi
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
# In order to use database local cmd to keep safe,
# we use dbshut instead of simply kill ora_ proc.
# When we reboot (runlevel = 0 or 6), no verbose.
# Force remove /var/lock/subsys/dbora to activate
if [ $SH_FLAG -eq 1 ]then
echo ""
echo "[oralog] ----->"
echo "Shutting down TNS Listener:"
echo "-------------------------------------------------------------------------"
su $ORA_USER -c "$ORA_HOME/bin/lsnrctl stop"
else
su $ORA_USER -c "$ORA_HOME/bin/lsnrctl stop >/dev/null"
fi
if [ $SH_FLAG -eq 1 ]then
echo
fi
if [ $SH_FLAG -eq 1 ]then
echo "Shutting down Oracle8i: "
echo "-------------------------------------------------------------------------"
su - $ORA_USER -c "$ORA_HOME/bin/dbshut"
else
su - $ORA_USER -c "$ORA_HOME/bin/dbshut >/dev/null"
fi
pid=`ps -$GREP_FLAG | grep -e ora_ -e lsnr | grep -v grep | awk '{ print $2 }'`
# Show pids when shutdown failed, to see debug info
# echo $pid
if [ $pid ]then
failure ""
else
success ""
fi
echo ""
rm -f /var/lock/subsys/dbora
return $RETVAL
}
restart() {
echo "Restarting Oracle8i and Listener: "
echo "========================================================================="
stop
start
}
reload() {
restart
}
status_ol() {
echo "Checking Oracle8i and Listener: "
echo "========================================================================="
su - $ORA_USER -c "$ORA_HOME/bin/dbstat"
}
case "$1" in
start)
start
stop)
stop
reload|restart)
restart
condrestart)
if [ -f /var/lock/subsys/dbora ]then
restart
fi
status)
status_ol
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
exit $?
exit $RETVAL
------------------------------------------------------------------------
caiwolf 回复于:2004-10-17 00:47:46
顶一个.:)
wwashington 回复于:2004-10-17 11:32:42
刚才的文件是 /etc/rc.d/init.d/dbora,现在补充一个 dbstat,
bash-2.05a# cat $ORACLE_HOME/bin/dbstat
GREP_UNIX=`uname | awk '{if($1 ~ /(^SunOS|^HP-UX)/) print $1}'`
if ! [ "$GREP_UNIX" = "" ]
then
GREP_FILE=/usr/xpg4/bin/grep
GREP_FLAG=ef
else
GREP_FILE=/bin/grep
GREP_FLAG=efw
fi
echo
echo "# ps -$GREP_FLAG | $GREP_FILE -e ora_ -e lsnr| grep -v grep"
echo
ps -$GREP_FLAG | $GREP_FILE -e ora_ -e lsnr| grep -v grep
echo
bash-2.05a# cat $ORACLE_BASE/.bashrc
# User specific environment and startup programs
ORA_FLAG=`echo $PATH | grep -e ^$ORACLE_BASE`
if [ "$ORA_FLAG" = "" ]then
PATH=$ORACLE_HOME/bin:$PATH
export PATH
fi
JAVA_HOME=/usr/java/1.18
LD_ASSUME_KERNEL=2.2.5
export JAVA_HOME LD_ASSUME_KERNEL
. /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是
Red
Hat
Package
Manager(简称RPM)。此工具包最先是由Red
Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。下面就给大家介绍一下它的具体使用方法。
1.我们得到一个新软件,在安装之前,一般都要先查看一下这个软件包里有什么内容,假设这个文件是:Linux-1.4-6.i368.rpm,我们可以用这条命令查看:
rpm
-qpi
Linux-1.4-6.i368.rpm
系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。
2.上面列出的所有文件在安装时不一定全部安装,就像Windows下程序的安装方式分为典型、完全、自定义一样,Linux也会让你选择安装方式,此时我们可以用下面这条命令查看软件包将会在系统里安装哪些部分,以方便我们的选择:
rpm
-qpl
Linux-1.4-6.i368.rpm
3.
选择安装方式后,开始安装。我们可以用rpm-ivh
Linux-1.4-6.i368.rpm命令安装此软件。在安装过程中,若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命令,可以在
-ivh后加一参数“-replacepkgs”:
rpm
-ivh
-replacepkgs
Linux-1.4-6.i368.rpm
4.有时我们卸载某个安装过的软件,只需执行rpm-e
<文件名>命令即可。
5.对低版本软件进行升级是提高其功能的好办法,这样可以省去我们卸载后再安装新软件的麻烦,要升级某个软件,只须执行如下命令:rpm
-uvh
<文件名>,注意:此时的文件名必须是要升级软件的升级补丁
6.
另外一个安装软件的方法可谓是Linux的独到之处,同时也是RMP强大功能的一个表现:通过FTP站点直接在线安装软件。当找到含有你所需软件的站点并与此网站连接后,执行下面的命令即可实现在线安装,譬如在线安装Linux-1.4-6.i368.rpm,可以用命令:
rpm
-i
ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm
7.
在我们使用电脑过程中,难免会有误操作,若我们误删了几个文件而影响了系统的性能时,怎样查找到底少了哪些文件呢?RPM软件包提供了一个查找损坏文件的功能,执行此命令:rpm
-Va即可,Linux将为你列出所有损坏的文件。你可以通过Linux的安装光盘进行修复。
8.Linux系统中文件繁多,在使用过程中,难免会碰到我们不认识的文件,在Windows下我们可以用“开始/查找”菜单快速判断某个文件属于哪个文件夹,在Linux中,下面这条命令行可以帮助我们快速判定某个文件属于哪个软件包:
rpm
-qf
<文件名>
9.当每个软件包安装在Linux系统后,安装文件都会到RPM数据库中“报到”,所以,我们要查询某个已安装软件的属性时,只需到此数据库中查找即可。注意:此时的查询命令不同于1和8介绍的查询,这种方法只适用于已安装过的软件包!命令格式:
rpm
-参数 <文件名>
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)