ホーム
 TOPへ 最終更新日:2006年 2月 9日



Contents
 
● [Daemon] システムサービス起動用スクリプト

    サンプルとして、sarad氏のDiCE(Dinamic DNS Client) for Linux をサービスと
    して起動するのに使用しているスクリプト(dices)を示す。

    ※ DiCE については、以下を参照のこと。
        http://www.hi-ho.ne.jp/yoshihiro_e/dice/
       有用なツールの公開に感謝します>sarad氏。

--- [Start of 'dices'] --------------------------------------------------------
#! /bin/bash
#
# DiCE
#
# chkconfig: 2345 99 10
# description: DiCE
#
# probe: true

# --- function library
 . /etc/rc.d/init.d/functions

# --- static
EXEDIR=/usr/sbin/DiCE/
EXENAME=diced
EXEOPT=-d
SRVNAME="DiCE"

# --- valiable
if [ ! "$EXEDIR" ] ; then
    EXEDIR=/usr/local/sbin
else
    if [ ! -d "$EXEDIR" ] ; then
        echo "Wrong directory name(EXEDIR='$EXEDIR')."
        exit 1
    fi
fi

PIDAC=`pidofproc $EXENAME`

case "$1" in
  start)
    if [ -n "$PIDAC" ] ; then
        echo "$SRVNAME already exists (pid=$PIDAC)."
        exit 1
    fi
    echo -n "Starting $SRVNAME: "
    daemon $EXEDIR/$EXENAME $EXEOPT
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
        touch /var/lock/subsys/$EXENAME
    fi
    echo ""
    ;;
  stop)
    if [ -z "$PIDAC" ] ; then
        echo "$SRVNAME not exist."
        exit 1
    fi
    echo -n "Shutting down $SRVNAME: "
    killproc $EXENAME
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
        rm -f /var/lock/subsys/$EXENAME
    fi
    echo ""
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  status)
    if [ -z "$PIDAC" ] ; then
        echo "$SRVNAME not exist."
        exit 0
    fi
    echo "$SRVNAME exists."
    ;;
  *)
    echo "Usage: $0 { start | stop | restart | status }"
    exit 1
esac

exit 0
--- [ End  of 'dices'] --------------------------------------------------------

    スクリプトを /etc/init.d/ に入れて(RedHatの場合)、

    # chmod 755 /etc/init.d/dices

    としてアクセス権を設定した後、
    
    # /etc/init.d/dices start

    で、DiCE が daemon モードで起動して常駐する。

    また、

    # chkconfig --add dices
    # chkconfig dices on

    とすることにより、次回システム起動時から DiCE が自動起動するようになる。

    [ サービス停止 ]
    # /etc/init.d/dices stop

    [ サービス再起動 ]
    # /etc/init.d/dices restart

    [ 状態確認 ]
    # /etc/init.d/dices status

    が可能。

    スクリプト中、

|   # DiCE
|   #
|   # chkconfig: 2345 99 10
|   # description: DiCE
|   #
|   # probe: true

    の箇所と、

    ※ # chkconfig: (run-levels) (start priority) (stop priority)
       # dspcription: (説明が書ける) \
       #              (行末に \ を置けば次の行も説明になる)

|   # --- static
|   EXEDIR=/usr/sbin/DiCE/
|   EXENAME=diced
|   EXEOPT=-d
|   SRVNAME="DiCE"

    の箇所を書き換えれば、他の実行ファイルにも応用可能かも。


  Indexに戻る



ホーム  このページの先頭