我试图在我的Linux发行版(OpenSuse 12.2)开始时开始Oracle开始。手动运行时该脚本正常工作。但是重新启动什么也没发生。当我运行inserv时,我会在下面获取这些消息,任何想法为什么?
insserv:警告:脚本 dbora' overwrites defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (empty) of script
dbora'覆盖默认值(2 3 4 5)的当前启动runlevel(s)(3 5)。
这是脚本:
#!/bin/bash
### BEGIN INIT INFO
# Provides: my_oracle_database
# Required-Start: $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: my_oracle_database
# Description: my_oracle_database
### END INIT INFO
export PATH=/oracle10/product/10.2.0/bin:$PATH
case "$1" in
start | startup | go | on)
su - oracle -c "/oracle10/product/10.2.0/bin/lsnrctl start"
su - oracle -c /oracle10/product/10.2.0/bin/dbstart /oracle10/product/10.2.0/
;;
stop | shutdown | halt | off)
su - oracle -c "/oracle10/product/10.2.0/bin/lsnrctl stop"
su - oracle -c /oracle10/product/10.2.0/bin/dbshut /oracle10/product/10.2.0/
;;
*)
;;
esac
您的问题可能是这些行:
su - oracle -c /oracle10/product/10.2.0/bin/dbstart /oracle10/product/10.2.0/
...
su - oracle -c /oracle10/product/10.2.0/bin/dbshut /oracle10/product/10.2.0/
su
默认情况下,通过/bin/sh
执行使用-c
选项给定的命令,而将所有其他位置参数传递给shell除外(如$0
,$1
,...):
# su nobody -c 'echo prog:$0 args:$@' a b c d
prog:a args:b c d
在您的脚本中,您缺少命令周围的引号,因此您正在执行dbstart
/dbshut
无参数,同时将通往Shell的路径作为$0
。