ページの先頭行へ戻る
Symfoware Server V12.0.0  導入ガイド(サーバ編)
FUJITSU Software

4.5.2 インスタンスの自動起動・停止の設定

データベースサーバのOSの起動・停止に合わせて、インスタンスを自動的に起動・停止することができます。

以下に示す手順に従って、インスタンスの自動起動・停止の設定を行ってください。

クラスタシステムでインスタンスを動作させる場合は、クラスタシステムにより起動停止が制御されるため、本機能を利用する必要はありません。

  1. インスタンス管理者のOSユーザーアカウントの設定

    インスタンス管理者のOSユーザーアカウントでログインした場合に、インスタンスの起動に必要な環境変数を設定するようにします。この設定は、以降で説明する“su -”コマンドの実行時に必要になります。

  2. シェルスクリプトの作成

    第1引数を読み取ってインスタンスの起動/停止を行うシェルスクリプトを作成します。

    第1引数を読み取り、“start”が指定された場合は起動、“stop”が指定された場合は停止を行うようにします。
    なお、“su -”コマンドによりインスタンス管理者として起動・停止を行う必要があります。

  3. シェルスクリプトの複写とアクセス権の設定

    OSのスーパーユーザーで、手順2で作成したシェルスクリプトを/etc/init.d配下に複写し、アクセス権を設定して登録します。

    以下は、自動起動停止スクリプトを“symfo_inst1”として作成した場合の例です。

    # cp symfo_inst1 /etc/init.d/
    # chmod 755 /etc/init.d/symfo_inst1
  4. シンボリックリンクの作成

    手順3で複写したシェルスクリプトへシンボリックリンクを作成します。

    • 自動起動させるため、以下のディレクトリに対してシンボリックリンクを作成します。

      • /etc/rc2.d

      シンボリックリンクの名前には、“S”の文字と2桁の数字を付けて、他に自動起動されるサービスとの起動順序を指定します。

      Symfoware ServerはネットワークなどのOSの基本的なサービスの起動を前提にするため、できるだけ大きな数値を付けて、後の方でインスタンスを起動するように設定してください。

      下記は、インスタンス“inst1”を自動起動するように設定している例です。

      # ln -s /etc/init.d/symfo_inst1 /etc/rc2.d/S85symfo_inst1
    • 自動停止させるため、以下のディレクトリに対してシンボリックリンクを作成します。

      OSの通常停止、シングルユーザモードでのOS起動、OSの再起動に対する設定です。

      • /etc/rc0.d

      • /etc/rc1.d

      • /etc/rcS.d

      シンボリックリンクの名前には、“K”の文字と2桁の数字を付けて、他の自動停止されるサービスとの停止順序を指定します。

      Symfoware ServerはネットワークなどのOSの基本的なサービスより前に停止する必要があるため、できるだけ小さな数値を付けて、初めの方でインスタンスを停止するように設定してください。ただし、この数値は、起動順と停止順の整合を取るために、100から自動起動の設定で指定した数値を引き算した値を指定します。

      下記は、インスタンス“inst1”を自動停止するように設定している例です。

      # ln -s /etc/init.d/symfo_inst1 /etc/rc0.d/K15symfo_inst1
      # ln -s /etc/init.d/symfo_inst1 /etc/rc1.d/K15symfo_inst1
      # ln -s /etc/init.d/symfo_inst1 /etc/rcS.d/K15symfo_inst1
インスタンスの自動起動・停止シェルスクリプトの例
#!/bin/sh
# description: Symfoware Server Open start / stop script
##########################################################################

SYMDATA="/database/inst1"
SYMUSER=symfo
SYMLOG="$SYMDATA/serverlog"

case "$1" in
    start)
        su - $SYMUSER -c "pg_ctl start -D '$SYMDATA' -w " >$SYMLOG 2>&1
        ;;
    stop)
        su - $SYMUSER -c "pg_ctl stop -D '$SYMDATA' -m fast" >$SYMLOG 2>&1
        ;;
    restart)
        su - $SYMUSER -c "pg_ctl restart -D '$SYMDATA' -m fast" >$SYMLOG 2>&1
        ;;
    reload)
        su - $SYMUSER -c "pg_ctl reload -D '$SYMDATA'" >$SYMLOG 2>&1
        ;;
    status)
        su - $SYMUSER -c "pg_ctl status -D '$SYMDATA'"
        ;;
    *)	
        echo $"Usage: $0 {start|stop|restart|reload|status}"
        exit 2
        ;;
esac