web-dev-qa-db-ja.com

init.dスクリプトでサービスを開始できますが、サービス<SERVICE_NAME>の開始を実行しても機能しません

CentOS 6を実行していて、起動時にOracleデータベースを実行しようとしています。私はこれらの手順に従っています:

http://www.Oracle-base.com/articles/linux/automating-database-startup-and-shutdown-on-linux.php (下部のOracle 11gR2部分)

このスクリプトを作成し、/ etc/init.d/dboraとして保存しました。

#!/bin/bash
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
# 
# Set ORA_OWNER to the user id of the owner of the
# Oracle database software.

ORA_OWNER=Oracle

case "$1" in
    'start')
    # Start the Oracle databases:
    # The following command assumes that the Oracle login
    # will not Prompt the user for any values
    # Remove "&" if you don't want startup as a background process.
    su $ORA_OWNER -c "/home/Oracle/scripts/startup.sh >> /home/Oracle/scripts/startup_shutdown.log 2>&1" &

    touch /var/lock/subsys/dbora
    ;;
'stop')
    # Stop the Oracle databases:
    # The following command assumes that the Oracle login
    # will not Prompt the user for any values
    su $ORA_OWNER -c "/home/Oracle/scripts/shutdown.sh >> /home/Oracle/scripts/startup_shutdown.log 2>&1"
    rm -f /var/lock/subsys/dbora
    ;;
esac

次に、私は実行しました:

chmod 750 /etc/init.d/dbora

指示に従って。

最後に、chkconfigを使用してスクリプトを追加しました。

chkconfig --add dbora

また、dboraファイルが呼び出すスクリプトも追加しました。

以下を使用してデータベースを起動できます。

/etc/init.d/dbora start

しかしながら、

service dbora start

動作しません。

何か案は?

2
user1472409

ランニングの主な違い/etc/init.d/foo startおよびservice foo startは、serviceがクリーンな環境でinitスクリプトを実行することです。 initスクリプトの実行が直接機能するが、serviceでは機能しない場合は、スクリプト内で手動で初期化していない環境変数がスタートアップで使用されています。 initスクリプトは非常に単純なので、環境変数の使用法は/home/Oracle/scripts/startup.sh 脚本。

また、serviceで実行されない場合、起動時に正しく起動しないことにも注意してください。

4
jordanm