YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-04-10 (水)


[一語一絵/IT系]

MediaTomb再調整 / 2014-09-20 (土)

7月に再導入したMediaTomb。気が付いたらREGZAから再生できなくなっている事があった。

プロセスを再起動すると復旧するので、どうやらサーバ起動時にプロセスがコケているらしく、/var/log/mediatomb.logを調べてみると

2014-09-20 15:17:29   ERROR: The connection to the MySQL database has failed: mysql_error (2002): "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"
というエラーが出ていた。

「プロセス再起動で復旧」するのだからMySQLが動いてないなんて事は「あり得ない」のだけれど…と思って調べたところ、[External]Ubuntu Server 14.04 LTSにてmediatombの自動起動が失敗するというエントリを発見。/etc/init/mediatomb.conf

yano@GT110b:~$ diff /etc/init/mediatomb.conf.orig /etc/init/mediatomb.conf
4c4,5
< start on (local-filesystems and net-device-up IFACE!=lo)
---
> # start on (local-filesystems and net-device-up IFACE!=lo)
> start on (started mysql and local-filesystems and net-device-up IFACE!=l0)
とする事で対処できた。

しかし、作業の最中にプロセス再起動を繰り返してポートが49152以外になるとまたREGZAから再生できなくなってしまう事に気付いた。正確に言うと「以前気付いたが解決策がわからなかった」事を思い出した。

改めてbindしている箇所のソース(~/miniserver.c)を読んでみたところ、設定でポート番号を指定されるとreuseaddr_onになり、未指定だとreuseaddr_offで49152からincrementされてしまう実装となっている事がわかったので、/etc/mediatomb/config.xmlに<port>でポート番号設定を追加し、プロセス再起動しても同じポート番号49152がreuseされるよう対処した。

  <server>
    ~~~~
    <name>MediaServer</name>
    <port>49152</port>
    <udn>uuid:~~~~</udn>
    <home>/var/lib/mediatomb</home>
    <webroot>/usr/share/mediatomb/web</webroot>

【参照】
●Ubuntu日本語フォーラム https://forums.ubuntulinux.jp/
Ubuntu Server 14.04 LTSにてmediatombの自動起動が失敗する 2014年6月14日