0

我正在尝试在我的 linux 发行版(opensuse 12.2)启动时启动 oracle。该脚本在手动运行时工作正常。但是在重新启动时没有任何反应。当我运行 inserv 时,我在下面收到这些消息,知道为什么吗?

dbora' overwrites defaults (2 3 4 5). insserv: warning: current stop runlevel(s) (empty) of scriptinsserv:警告:脚本dbora 的当前启动运行级别 (3 5)覆盖默认值 (2 3 4 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
4

1 回答 1

0

您的问题可能是以下几行:

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默认情况下执行使用-c选项 through给出的命令/bin/sh,同时将除 usernaem 之外的所有其他位置参数传递给 shell(如$0$1、 ...):

# su nobody -c 'echo prog:$0 args:$@' a b c d
prog:a args:b c d

在您的脚本中,您缺少命令周围的引号,因此您正在执行dbstart/dbshut不带参数,同时将路径作为$0.

于 2012-11-06T18:24:38.040 回答