DebianでUniversal Media Serverを運用する

Universal Media Server (UMS)でDLNAサーバーを作った時の作業メモです。

インストール時のバージョン

  • Debian 8.2 (jessie)
  • openjdk-7-jre 7u79-2.5.6-1
  • Universal Media Server 5.2.2 for Java 7

インストール

MediaInfoとJREをインストール

sudo apt-get install mediainfo openjdk-7-jre

UMSをダウンロード

wget http://sourceforge.net/projects/unimediaserver/files/Official%20Releases/Linux/UMS-5.2.2-Java7.tgz

UMSをインストール

今回は、/opt にインストールします。

tar xzvf UMS-5.2.2-Java7.tgz
sudo mv ums-5.2.2 /opt/.
sudo chown -R root:root /opt/ums-5.2.2
sudo ln -s /opt/ums-5.2.2 /opt/ums

UMS実行ユーザーを作成

rootでUMSを動かしたくないので、umsという名前で専用ユーザーを作ります。 既存ユーザーで実行する場合は、この手順をスキップします。

sudo adduser ums

UMS実行ユーザーでの作業

UMS実行ユーザーに切り替え

sudo -i -u ums

UMSを起動する

一度起動しておくと、ホームディレクトリに設定ファイルが作られます。

/opt/ums/UMS.sh
# 起動したら、Ctrl + C で終了する

公開するディレクトリを設定ファイルに追記

UMSをインストールしたディレクトリにも設定ファイルがありますが、そちらは書き換えずにホームディレクトリの設定ファイルに記述します。

sudo vi ~/.config/UMS/UMS.conf

~/.config/UMS/UMS.confDLNAで公開するディレクトリを追記します。これらのディレクトリには、UMS実行ユーザーの読み取り権限が必要です。

folders = /path/to/video, /path/to/music, /path/to/picture

作業が終わったら、元のユーザーに戻ります。

exit

サービス化

ここまで設定が終われば、UMS実行ユーザーで/opt/ums/UMS.shを起動すると、PS3などからDLNAサーバーとして見えるはずです。

ここでは、OSを再起動してもUMSが自動起動するようにサービス化します。

Debian 8なので、systemdで設定します。

sudo vi /etc/systemd/system/ums.service

ums.serviceの内容は以下の通りです。UserはUMSを実行するユーザーに適宜変更してください。

[Unit]
Description=Universal Media Server
After=network.target

[Service]
ExecStart=/opt/ums/UMS.sh
ExecStop=/bin/kill -INT $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Type=simple
User=ums

[Install]
WantedBy=multi-user.target

サービスを有効化して、起動してみます。

sudo systemctl enable ums.service
sudo systemctl start ums.service

動作確認

再起動した後にプロセスが起動していることや、プロセスの実行ユーザーが設定通りになっているかps aux | grep umsなどで確認します。

$ ps aux | grep ums
ums      14724  0.8  2.4 3372236 189972 ?      Ssl  12月05   0:48 java -Xmx768M -Xss2048k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Djna.nosys=true -classpath update.jar:ums.jar net.pms.PMS

プロセスが起動していたら、PS3などで公開したディレクトリが見えるかどうか、メディアを再生できるかどうかを確認します。