[packman] systemd unit file ignores minidlna default configuration

Administrator admin at different-perspectives.com
Wed Jan 3 11:27:49 CET 2018


> On 3 Jan 2018, at 08:31, Bob Williams <usenet at karmasailing.uk> wrote:
> 
> On Tue, 2 Jan 2018 22:16:12 +0100
> Grozdan <neutrino8 at gmail.com> wrote:
> 
>> On Tue, Jan 2, 2018 at 10:11 PM, Grozdan <neutrino8 at gmail.com> wrote:
>>> On Tue, Jan 2, 2018 at 10:00 PM, Bob Williams
>>> <usenet at karmasailing.uk> wrote:  
>>>> On Tue, 2 Jan 2018 21:05:49 +0100
>>>> Grozdan <neutrino8 at gmail.com> wrote:
>>>> 
>>>>> On Tue, Jan 2, 2018 at 8:51 PM, Bob Williams
>>>>> <usenet at karmasailing.uk> wrote:  
>>>>>> My system is openSUSE Leap 42.3, and I am using the version of
>>>>>> minidlna from the packman repository.
>>>>>> 
>>>>>> For some time I have been successfully running a minidlna server
>>>>>> which streams music to a Bose Soundtouch device over WiFi.
>>>>>> However, it stopped working a few weeks ago, and the SoundTouch
>>>>>> device could only find an empty folder.
>>>>>> 
>>>>>> After several re-writes of /etc/minidlna.conf without success,
>>>>>> and searching for other versions of minidlna.conf in non-default
>>>>>> locations, I finally tracked the culprit down
>>>>>> to /usr/lib/systemd/system/minidlna.service which contained the
>>>>>> following:
>>>>>> 
>>>>>> [Unit]
>>>>>> Description=MiniDLNA UPnP-A/V and DLNA media server
>>>>>> After=var-run.mount nss-lookup.target network.target
>>>>>> remote-fs.target
>>>>>> 
>>>>>> [Service]
>>>>>> Type=forking
>>>>>> PIDFile=/var/run/minidlnad.pid
>>>>>> ExecStartPre=/usr/sbin/minidlnaconfig
>>>>>> EnvironmentFile=-/var/lib/minidlna/rescan.conf
>>>>>> ExecStart=/usr/sbin/minidlnad $RESCAN -P /var/run/minidlnad.pid
>>>>>> -f /var/lib/minidlna/minidlna.conf [0]
>>>>>> 
>>>>>> [Install]
>>>>>> WantedBy=multi-user.target
>>>>>> 
>>>>>> So the unit file was forcing minidlna to use the configuration
>>>>>> file in /var/lib/minidlna/minidlna.conf rather than the
>>>>>> default /etc/minidlna.conf! /var/lib/minidlna/minidlna.conf
>>>>>> pointed to media_dir=/mnt and was recreated at start-up, so
>>>>>> even editing the media_dir= line didn't work. Changing the last
>>>>>> line in the [Service] stanza to include "-f /etc/minidlna.conf"
>>>>>> got things working again - and just in time for Christmas. ;-)
>>>>>> 
>>>>>> I have no idea how this got changed, but I wonder if anyone else
>>>>>> has come across anything similar?  
>>>>> 
>>>>> Works here without issues on 2 computers.
>>>>> /var/lib/minidlna/minidlna.conf is used since we read
>>>>> /etc/minidlna.conf on startup and create our own version in
>>>>> /var/lib/minidlna. Tha's what the minidlnaconfig script does
>>>>> 
>>>> Thank you for that explanation. I wasn't aware of that.
>>>> 
>>>>> Nothing has changed in this configuration for the past few
>>>>> updates. The last update was just adding a SuSEfirewall2 file.
>>>>> Nothing else was touched
>>>>> 
>>>> I don't use SuSEfirewall2 so it couldn't have been that. Must have
>>>> been something here, though I've no idea what.  
>>> 
>>> if your original email, you pasted the contents of the service
>>> file. I notice a [0] at the very end of the ExecStart line. Is this
>>> [0] actually present in the service file or did you made a mistake
>>> during copy/paste?
>>> if that  [0] is actually part of the service file, something has
>>> changed the file. If not, everything looks fine to me and you may
>>> try to stop minidlna, clean the /var/lib/minidlna directory
>>> completely and lastly, configure /etc/minidlna.conf to your needs
>>> then start minidlna  
>> 
> The [0] is a copy and paste error. It is not part of the service file.
> 
>> Sorry, you should configure /etc/sysconfig/minidlna as that's the
>> actual config file on openSUSE. I don't know why you have
>> /etc/minidlna.conf. It is not part of the package
>> 
> Now I'm confused. The man page for minidlna says:
> 
> "The  following  are user configurable options in /etc/minidlna.conf."
> 
> No mention of /etc/sysconfig/minidlna, which I never knew existed, until now. This file also seems to require a different syntax to /etc/minidlna.conf. media_dir statements have to be entered on a single line separated by pipes, which systemd then rewrites onto separate lines when it recreates its own version of minidlna.conf
> 
> These changes should be documented somewhere, preferably in man minidlna.
> 
> I renamed /etc/minidlna.conf to /etc/minidlna.conf.orig and edited /etc/sysconfig/minidlna to point to my media_dir and then restarted minidlna. The process failed due to a missing /etc/minidlna.conf!
> 
> sudo systemctl -l status minidlna.service
> ● minidlna.service - MiniDLNA UPnP-A/V and DLNA media server
>   Loaded: loaded (/usr/lib/systemd/system/minidlna.service; enabled; vendor preset: disabled)
>   Active: failed (Result: exit-code) since Wed 2018-01-03 08:20:30 GMT; 2min 17s ago
>  Process: 5299 ExecStart=/usr/sbin/minidlnad $RESCAN -P /var/run/minidlnad.pid -f /etc/minidlna.conf (code=exited, status=255)
>  Process: 5288 ExecStartPre=/usr/sbin/minidlnaconfig (code=exited, status=0/SUCCESS)
> Main PID: 3325 (code=exited, status=0/SUCCESS)
> 
> Jan 03 08:20:30 blackbox systemd[1]: Starting MiniDLNA UPnP-A/V and DLNA media server...
> Jan 03 08:20:30 blackbox minidlnad[5299]: [2018/01/03 08:20:30] minidlna.c:548: fatal: Error reading configuration file /etc/minidlna.conf
> Jan 03 08:20:30 blackbox systemd[1]: minidlna.service: Control process exited, code=exited status=255
> Jan 03 08:20:30 blackbox systemd[1]: Failed to start MiniDLNA UPnP-A/V and DLNA media server.
> Jan 03 08:20:30 blackbox systemd[1]: minidlna.service: Unit entered failed state.
> Jan 03 08:20:30 blackbox systemd[1]: minidlna.service: Failed with result 'exit-code'.
> Jan 03 08:22:42 blackbox systemd[1]: Stopped MiniDLNA UPnP-A/V and DLNA media server
> 
Looks to me like you’ve added “-f /etc/minidlna.conf” to the ExecStart line, so it’s now looking for a different file that doesn't exist.  I assume you saved a copy of the original file before editing it …







More information about the Packman mailing list