iTunesで管理してる音楽データのバックアップを自宅サーバ(Debian)にバックアップしてるんですが、普段からこのデータ生かせないかな、とは考えてたんです。ファイルサーバとしてだけ使うのもったいないしですし。そんなわけで今回DLNAサーバを導入してみました。
$ sudo apt install minidlna
インストール自体はもちろん簡単に終わったんですが、この後が苦労しました…
自ユーザの「趣味」というディレクトリ配下にデータを格納してるんですが、ここに対してアクセスができないと言われます。
8月 03 14:10:28 $USER minidlnad[2787]: [2024/08/03 14:10:28] minidlna.c:670: error: Media directory "/home/$USER/趣味" not accessible [Permi>
このとき、プロセスは「minidlna」ユーザで起動していたので/etc/minidlna.conf でユーザ名を自ユーザに設定して起動しようとすると
8月 03 14:19:31 $USER systemd[1]: minidlna.service: Main process exited, code=exited, status=255/EXCEPTION 8月 03 14:19:31 $USER systemd[1]: minidlna.service: Failed with result 'exit-code'.
今度は起動すらしやしない。
検索したところ、db_dir と log_dir のパーミッションも変更しましょう、と見つけたのでディレクトリとファイルのパーミッションを変更してみたりしたんですが、それでもうまく行かず。
時間ばかりかかるので諦めようかと思ったんですが、Arch Wikiにこんな記載が。
ユーザーで minidlna を実行
システムサービスとしてではなく、自分のユーザーを使って minidlna を実行することもできます。マシンの管理者権限がないときにメディアを共有したい場合に便利です。
ローカルで必要なファイルとディレクトリを作成して設定を編集してください:
これで行けるか?ということで早速チャレンジ。
コンフィグファイルを自分のディレクトリにコピーして
$ install -Dm644 /etc/minidlna.conf ~/.config/minidlna/minidlna.conf
$ $EDITOR ~/.config/minidlna/minidlna.conf
ユーザを自ユーザに設定して
user=$USER
media_dir と db_dir と log_dir を設定して
media_dir=/home/$USER/dir
db_dir=/home/$USER/.config/minidlna/cache
log_dir=/home/$USER/.config/minidlna
$ /usr/sbin/minidlnad -f /home/$USER/.config/minidlna/minidlna.conf -P /home/$USER/.config/minidlna/minidlna.pid $ ps -ef|grep dlna $USER 2883 1 0 20:35 ? 00:00:00 /usr/sbin/minidlnad -f /home/valkylie/.config/minidlna/minidlna.conf -P /home/valkylie/.config/minidlna/minidlna.pid $USER 2886 2883 99 20:35 ? 00:00:05 /usr/sbin/minidlnad -f /home/valkylie/.config/minidlna/minidlna.conf -P /home/valkylie/.config/minidlna/minidlna.pid
よし、起動した!
ちゃんとライブラリも読み込めてる!やった!
さあ、じゃあ次はこれをどうやって起動させるかと、どう読み出すかだな。