23 January 2014

(Ubuntu 12.04) DLNAサーバ mediatomb を自動起動しないように設定する

Ubuntu 12.04のリポジトリからインストールされるmediatombの自動起動の無効化ができないバグを回避する方法。

バグレポートはlaunchpad.netの『Bug #277393 init script fails if NO_START="yes" 』に報告済みで、パッケージとしては未解決。

検証環境

・Ubuntu 12.04.4 LTS
・mediatomb 0.12.1

mediatombの標準的な自動起動無効化の方法

mediatombの設定ファイルに書かれているとおりに無効化してみる → 無効化できない!

/etc/default/mediatomb
# Set whether the daemon should be started. Set this value to anything
# but 'yes' to enable the daemon
#NO_START="no"
#        ↓
NO_START="yes"

upstartの無効化手順を踏んでみる → この方法も効果なし!

# update-rc.d mediatomb disable
# sysv-rc-conf --list | grep media
mediatomb    0:off	1:off	2:off	3:off	4:off	5:off	6:off

Ubuntuの公式ページ『MediaTomb - Community Ubuntu Documentation』に書かれている次のような方法も試してみるが、効果なし。

# mv /etc/init.d/mediatomb /etc/init.d/mediatomb.backup
# update-rc.d mediatomb remove

状況

どの方法を試しても、mediatombが起動している。upstartの中で起動されているようだ。

# initctl list | grep media
mediatomb start/running, process 3064
 
# ps -ax | grep -e media
 3064 ?        Ssl    0:00 mediatomb -c /etc/mediatomb/config.xml -u mediatomb -g mediatomb -l /var/log/mediatomb.log -e eth0

upstartの設定ファイルで無効化してみる

/etc/init/mediatomb.conf
#start on (local-filesystems and net-device-up IFACE!=lo)
#     ↓
start on runlevel []
stop on runlevel [!2345]

もしくは、/etc/default/mediatomb の NO_START をきっちりと処理するように

/etc/init/mediatomb.conf
script
	[ -r $DEFAULT ] && . $DEFAULT
##### 次の1行を追加する
	[ $NO_START = yes ] && exit 0
#####
	[ ! $USER ] && USER=root

スマートなのは、下のやり方ですね。launchpad.netのバグレポートでの回答も、ユーザがこういうふうにスクリプト修正するとよいと書いてあります。