Remedie Media Center

remedieを入れて,面白く遊んでいる. miyagawaさんさえいれば世の中は回り続ける気がする.

自動起動についてはちょっと設定が見当たらなかったので,debian系限定だが,start-stop-daemon を使ってinitスクリプトを書いた.

$ cat /etc/init.d/remedie-server
#!/bin/sh

PATH=/sbin:/bin:/usr/bin
REMEDIE_HOME="/home/App/remedie"

EXECFILE=/usr/bin/perl
ARGS="-I${REMEDIE_HOME}/lib ${REMEDIE_HOME}/bin/remedie-server.pl --root ${REMEDIE_HOME}/root"
PIDFILE=/var/run/remedie-server.pid
DESC="Remedie server"

test -f ${EXECFILE}     || exit 0
test -d ${REMEDIE_HOME} || exit 0

start_remedie ()
{
        start-stop-daemon --start --quiet --background --make-pidfile --pidfile ${PIDFILE} --exec ${EXECFILE} -- ${ARGS}
        return 0
}

stop_remedie ()
{
        start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
        start-stop-daemon --stop --quiet --pidfile ${PIDFILE} --signal 9
        rm -f ${PIDFILE}
        return 0
}

case "$1" in
        start)
                echo -n "Starting $DESC: "
                if start-stop-daemon --stop --quiet --pidfile $PIDFILE --signal 0
                then
                        echo " already running."
                        exit
                fi
                start_remedie
                echo "done."
                ;;
        stop)
                echo -n "Stopping $DESC: "
                stop_remedie
                echo "done."
                ;;
        restart|force-reload)
                echo -n "Restarting $DESC... "
                stop_remedie
                sleep 2
                start_remedie
                echo "done."
                ;;
        *)
                echo "Usage: /etc/init.d/remedie-server {start|stop|restart|force-reload}"
                exit 1
                ;;
esac

exit 0

デフォルトのランレベルに登録しておく. これで自動的にデーモンとして立ち上がるはず.

$ update-rc.d remedie defaults 99 1

修正 (2009/01/22)

  • remedie-server.pl--root 引数を指定し,ドキュメントルートを明示するように変更

追記 (2009/07/18)

アップグレード方法.何度かやっているが,毎回新規に入るCPANモジュールが多く,その中の何割かはこける. 割と手間取るので注意.

  • インストールディレクトリで git pull を実行してソースコードを最新化
    • git pull が失敗する場合,よくわからないので再度 git cloneソースコードを取得すると良い
    • git clone git://github.com/miyagawa/remedie.git
  • perl Makefile.PL && make installdeps で依存しているCPANモジュールをインストール&アップグレード
  • /etc/init.d/remedie-server restart