mythbackend と mtd を PC 起動時に自動で立ち上げる。

これまで、mythbackend と mtd は、mythfrontend を起動する際にそのつど立ち上げていた。いちいちコマンドを打つのは面倒なので、vi 等で mythbackstart.sh(名前は何でもよい) という実行ファイルを作り、mythbackend と mtd の起動を記述し、パネルにランチャを登録し、適当なアイコンを作り貼り付け、ワンクリックで両方が立ち上がるようしていた。

$vi mythbackstart.sh

#!/bin/bash
mythbackend &
mtd &
:wq  *保存する(適当な書き方だが、きちんと動作する。)

$chmod +x mythbackstart.sh  (*これを忘れると何も起こらない。)

以上を行った後パネルに登録し、下のようなアイコンを貼り付けておいた。



この方法で、何も問題はないのだが、ハードの環境を少し改善したので(最近のメモリの価格の下落に乗じて、メモリを買い足した。)自動起動させることにした。

mythbackend

fedora の場合(他は知らないが)mythbackend は起動スクリプトが用意されていて、下記のようにすれば次回 PC起動時から自動で立ち上がるはずである。

#chkconfig --level 35 mythbackend on
#/etc/rc.d/init.d/mythbackend start

ところが、この方法ではうまく行かない。mythbackend は立ち上がっているようだが、TV の視聴ができない。(砂嵐状態)原因はわからないが、後述する mtd よりも先に読み込まれるようにしてみたりしたがだめだった。仕方がないので、/etc/rc.local に mythbackend の起動を記述してみるときちんと動作した。(mtd と mythbackend の読み込み順序はどちらが先でも動作には関係ないようだ。)

#vi /etc/rc.local

/usr/bin/mythbackend
:wq  *保存する

#/etc/rc.d/init.d/mythbackend start  *すでに起動させている場合は必要ない。

これで次回 PC 起動時から mythbackend は自動で立ち上がってくれる。

mtd

mtd は、MythTV で DVD を視聴するために必要なプログラムなので、DVD は xine や mplayer 単体で見ると言う方は無理に立ち上げておく必要もない。
mtd には起動用のスクリプトが用意されていない。mythbackend 用の起動スクリプトを書き換えればどうにかなるのだろうが、私にそのようなことはできないので検索をしてみるとやはりその方法はあった。

  • /etc/rc.d/init.d/mythbackend をコピー
  • コピーしたものをリネーム
  • 内容書き換え。(記述中の mythbackend の部分を mtd に書き換え。(11箇所あった。)
  • 24 行目付近の、
    OPTIONS="$OPTIONS --daemon --logfile /var/log/mythtv/$prog.log --pidfile /var/run/$prog.pid"の部分を
    OPTIONS="$OPTIONS -d" と書き換える。
  • mtd を run レベル 3 と 5 に追加して、起動する。
    上記の手順で大丈夫だ。
#cp /etc/rc.d/init.d/mythbackend /etc/rc.d/init.d/mtd
#vi /etc/rc.d/init.d/mtd *上記のように書き換える。
#chkconfig --level 35 mtd on
#/etc/rc.d/init.d/mtd start

これで、次回 PC 起動時から mtd が自動で立ち上がる。
参考に書き換え後の /etc/rc.d/init.d/mtd を掲載しておこう。

#!/bin/bash
#
# Startup script for mtd
#
# chkconfig: - 86 14
# description: mtd.
# processname: mtd
# pidfile: /var/run/mtd.pid
# config: 

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

if [ -f /etc/sysconfig/mtd ]; then
        . /etc/sysconfig/mtd
fi

## Defaults, override them in /etc/sysconfig/mtd
: ${MYTHTV_HOME=/var/lib/mythtv}

binary=/usr/bin/mtd
prog=mtd
RETVAL=0
OPTIONS="$OPTIONS -d"

start() {
  echo -n $"Starting $prog: "
  touch /var/run/mtd.pid; chown mythtv:mythtv /var/run/mtd.pid
  # Does not work on Red Hat, do to to missing audio/video groups.
#  cd $MYTHTV_HOME && daemon --user mythtv $binary $OPTIONS
  cd $MYTHTV_HOME && daemon $binary $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
  return $RETVAL
}

stop() {
  echo -n $"Stopping $prog: "
  killproc $binary
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog /var/run/$prog.pid
}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart)
	stop
	start
	;;
  status)
	status $prog
	;;
  *)
	echo $"Usage: $prog {start|stop|status|restart}"
	exit 1
esac

exit $RETVAL