2015年2月1日日曜日

CentOS7でDLNAサーバー(minidlna)を構築 -サービス設定編-

CentOS7 を DLNAサーバーに でインストールした minidlna をサービス登録&
firewallへの追加を行います

minidlna を systemctl へ登録


CentOS7 より systemv が 廃止?され サービスは systemctl 経由で行われるようになりました
minidlna はまだ 対応していないため自前で作る必要があります

作り方はいたって簡単

/usr/lib/systemd/system/ に 以下の service ファイルを設置するだけ

# cat /usr/lib/systemd/system/minidlna.service
[Unit]
Description=minidlna server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
PIDFile=/var/run/minidlna/minidlna.pid
EnvironmentFile=/etc/sysconfig/minidlna
ExecStart=/usr/local/sbin/minidlnad -R -f $CONFIG_FILE
ExecStop=/bin/kill -SIGTERM $MAINPID
ここに書かれるのは 起動/停止コマンドと環境ファイルのみとなるため
起動に必要な引数は EnvironmentFile に記載します
起動引数に -R をつけて ライブラリをスキャンしなおすようにしています
EnvironmentFile の中身は
# cat /etc/sysconfig/minidlna
CONFIG_FILE=/etc/minidlna.conf
だけです
minidlna.conf の中身は前回作ったものです
これで
systemctl start minidlna
systemctl stop minidlna
が成功すればOK

# systemctl status minidlna
minidlna.service - minidlna server
   Loaded: loaded (/usr/lib/systemd/system/minidlna.service; static)
   Active: active (running) since 日 2015-02-01 14:45:40 JST; 5h 56min ago
 Main PID: 12790 (minidlnad)
   CGroup: /system.slice/minidlna.service
           └─12790 /usr/local/sbin/minidlnad -R -f /etc/minidlna.conf

 2月 01 14:45:40 localhost.localdomain systemd[1]: Started minidlna server.

firewalld への追加


DLNAサービスで必要なポートは
  • udp 1900
  • tcp 5000
です
そのほか minidlna.conf で 指定したWEBポートを必要あればあけます
一つ一つ
# firewall-cmd --add-port=XXXX --permanent
とかしてもいいんですが
今回は service として登録してしまいました
/usr/lib/firewalld/services/
には service 毎の設定が入っているため同じようにファイルを作ります
内容は以下のとおり
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>minidlna</short>
  <description></description>
  <port protocol="udp" port="1900"/>
  <port protocol="tcp" port="5000"/>
</service>
これで
# firewall-cmd --add-service=minidlna --permanent
# firewall-cmd --reload
とすれば ポートが開放されるので 他のDLNA機器から検索できるか確認してみましょう

0 件のコメント:

コメントを投稿