(resolved) MiniDLNA not running on rPi2 Jessie

Have some feedback, questions, suggestions, or just fancy a chat? Pop it in here.
Post Reply
Mootch

(resolved) MiniDLNA not running on rPi2 Jessie

Post by Mootch »

I'm getting this message when checking the status of minidlna on the Jessie image:

Code: Select all

root@DietPi2:/etc# service minidlna status
● minidlna.service - MiniDLNA is a DLNA/UPnP-AV server software
   Loaded: loaded (/lib/systemd/system/minidlna.service; disabled)
   Active: failed (Result: exit-code) since Sun 2015-11-08 18:08:51 EST; 3min 11s ago
  Process: 1331 ExecStart=/usr/sbin/minidlnad -S (code=exited, status=255)
  Process: 1327 ExecStartPre=/bin/chown $USER /var/run/minidlna (code=exited, status=0/SUCCESS)
  Process: 1325 ExecStartPre=/bin/mkdir -p /var/run/minidlna (code=exited, status=0/SUCCESS)
 Main PID: 1331 (code=exited, status=255)

Nov 08 18:08:50 DietPi2 systemd[1]: Started MiniDLNA is a DLNA/UPnP-AV server software.
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] minidlna.c:611: error: Media directory "A,/root/Music" not accessible [Permission denied]
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] minidlna.c:611: error: Media directory "P,/root/Pictures" not accessible [Permission denied]
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] minidlna.c:611: error: Media directory "V,/root/Video" not accessible [Permission denied]
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] utils.c:277: warn: make_dir: cannot create directory '/root/.MiniDLNA_Cache'
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] minidlna.c:655: fatal: Database path not accessible! [/root/.MiniDLNA_Cache]
Nov 08 18:08:51 DietPi2 systemd[1]: minidlna.service: main process exited, code=exited, status=255/n/a
Nov 08 18:08:51 DietPi2 systemd[1]: Unit minidlna.service entered failed state.
It looks like a permission issue, but I am running as root so I'm not sure what permission I would need to grant. Any help would be appreciated. Thanks!
User avatar
Fourdee
Site Admin
Posts: 2788
Joined: Tue Feb 06, 2007 1:36 pm

Re: MiniDLNA not running on rPi2 Jessie

Post by Fourdee »

Mootch wrote:I'm getting this message when checking the status of minidlna on the Jessie image:

Code: Select all

root@DietPi2:/etc# service minidlna status
● minidlna.service - MiniDLNA is a DLNA/UPnP-AV server software
   Loaded: loaded (/lib/systemd/system/minidlna.service; disabled)
   Active: failed (Result: exit-code) since Sun 2015-11-08 18:08:51 EST; 3min 11s ago
  Process: 1331 ExecStart=/usr/sbin/minidlnad -S (code=exited, status=255)
  Process: 1327 ExecStartPre=/bin/chown $USER /var/run/minidlna (code=exited, status=0/SUCCESS)
  Process: 1325 ExecStartPre=/bin/mkdir -p /var/run/minidlna (code=exited, status=0/SUCCESS)
 Main PID: 1331 (code=exited, status=255)

Nov 08 18:08:50 DietPi2 systemd[1]: Started MiniDLNA is a DLNA/UPnP-AV server software.
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] minidlna.c:611: error: Media directory "A,/root/Music" not accessible [Permission denied]
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] minidlna.c:611: error: Media directory "P,/root/Pictures" not accessible [Permission denied]
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] minidlna.c:611: error: Media directory "V,/root/Video" not accessible [Permission denied]
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] utils.c:277: warn: make_dir: cannot create directory '/root/.MiniDLNA_Cache'
Nov 08 18:08:51 DietPi2 minidlnad[1331]: [2015/11/08 18:08:51] minidlna.c:655: fatal: Database path not accessible! [/root/.MiniDLNA_Cache]
Nov 08 18:08:51 DietPi2 systemd[1]: minidlna.service: main process exited, code=exited, status=255/n/a
Nov 08 18:08:51 DietPi2 systemd[1]: Unit minidlna.service entered failed state.
It looks like a permission issue, but I am running as root so I'm not sure what permission I would need to grant. Any help would be appreciated. Thanks!
Looks like minidlna isnt running as root. The weird thing is, i did a test install on my RPiv2 + Jessie just now, and, service runs fine.

Can you try the following:

Code: Select all

sed -i '/USER=m/c\USER=root' /etc/init.d/minidlna
systemctl daemon-reload
service minidlna restart
Checks its running:

Code: Select all

systemctl status minidlna.service
If it still says failed, can you post the contents of:

Code: Select all

cat /etc/init.d/minidlna
cat /lib/systemd/system/minidlna.service
ls -lha /root
EDIT:
It looks like your system is using a systemd service instead (/lib/systemd/system/minidlna.service) of the LSB (/etc/init.d/minidlna) which gets installed. Did you install minidlna via dietpi-software?

Also, are you running the RPi v1 or v2:

Code: Select all

cat /DietPi/dietpi/.hw_model
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal or become a DietPi patron.
Mootch

Re: MiniDLNA not running on rPi2 Jessie

Post by Mootch »

I can try the code you suggested when I get home and see if that works.

I am running with Jessie on a Raspberry Pi 2. Currently, it's installed from the dietpi-software on a fresh image. I noticed that it broke after an apt-get update/upgrade on a previous image and then tried to re-image but it still didn't work.
User avatar
Fourdee
Site Admin
Posts: 2788
Joined: Tue Feb 06, 2007 1:36 pm

Re: MiniDLNA not running on rPi2 Jessie

Post by Fourdee »

Mootch wrote:I can try the code you suggested when I get home and see if that works.

I am running with Jessie on a Raspberry Pi 2. Currently, it's installed from the dietpi-software on a fresh image. I noticed that it broke after an apt-get update/upgrade on a previous image and then tried to re-image but it still didn't work.
Thanks mootch,

It may also be worth sending a

Code: Select all

dietpi-bugreport
if you get the time. No need to fill out the text file, I only need the generated reference CODE:.
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal or become a DietPi patron.
Mootch

Re: MiniDLNA not running on rPi2 Jessie

Post by Mootch »

Here is the output of the commands you asked about after I tried it with your changes. It still failed due to the same error.

Code: Select all

root@DietPi2:~# cat /etc/init.d/minidlna
#!/bin/sh
### BEGIN INIT INFO
# Provides:          minidlna
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start minidlna at boot time
# Description:       Manage the minidlna daemon, a DLNA/UPnP-AV media server.
### END INIT INFO

unset USER

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="DLNA/UPnP-AV media server"
NAME=minidlna
DAEMON=/usr/sbin/minidlnad
DAEMON_ARGS="-f /etc/minidlna/minidlna.conf"
PIDFILE=/var/run/minidlna/minidlna.pid
SCRIPTNAME=/etc/init.d/minidlna
DEFAULT=/etc/default/$NAME

# Exit if the package is not installed
[ -x $DAEMON ] || exit 0

# Read configuration variable file if it is present
[ -r $DEFAULT ] && . $DEFAULT

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

# Do not start the daemon if NO_START is enabled in DEFAULT
if [ "$START_DAEMON" != "yes" ] && [ "$1" != "stop" ]; then
        log_warning_msg "$NAME: Not starting $DESC."
        log_warning_msg "$NAME: Disabled in $DEFAULT."
        exit 0
fi

# Set the default configuration file
if [ -z $CONFIGFILE ]; then
        CONFIGFILE=/etc/minidlna.conf
fi

# Set the default log file
if [ -z $LOGFILE ]; then
        LOGFILE=/var/log/minidlna.log
fi

# Run as `minidlna' if USER is not specified or is `root'
if [ -z $USER ]; then
USER=root
fi

# If no group is specified, use USER
if [ -z $GROUP ]; then
        GROUP=$USER
fi

if [ ! -d /var/run/minidlna ]; then
        mkdir /var/run/minidlna
        chown $USER:$GROUP /var/run/minidlna
fi

DAEMON_ARGS="-f $CONFIGFILE -P $PIDFILE $DAEMON_OPTS"

#
# Function that starts the daemon/service
#
do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        touch $LOGFILE && chown $USER:$GROUP $LOGFILE || return 2

        start-stop-daemon --start --quiet --pidfile $PIDFILE \
                --chuid $USER:$GROUP --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE \
                --chuid $USER:$GROUP --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
        start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
        return 0
}

case "$1" in
  start)
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
    do_start
    case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
  ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  status)
       status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME" && exit 0 || exit $?
       ;;
  restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                if [ "$1" = "force-reload" ]; then
                        # Rescan the collection
                        DAEMON_ARGS="$DAEMON_ARGS -R"
                fi
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
        exit 3
        ;;
esac

:
root@DietPi2:~# cat /lib/systemd/system/minidlna.service
[Unit]
Description=MiniDLNA is a DLNA/UPnP-AV server software
After=local-fs.target network.target

[Service]
User=minidlna
Group=minidlna
Type=simple
# drop root just before ExecStart to allow ExecStartPre to run as root
PermissionsStartOnly=true
# create PID directory
ExecStartPre=/bin/mkdir -p /var/run/minidlna
ExecStartPre=/bin/chown $USER /var/run/minidlna
ExecStart=/usr/sbin/minidlnad -S

[Install]
WantedBy=multi-user.target
root@DietPi2:~# ls -lha /root
total 52K
drwx------  9 root root 4.0K Nov  8 19:23 .
drwxr-xr-x 21 root root 4.0K Nov  8 17:52 ..
-rw-------  1 root root  782 Nov  9 14:07 .bash_history
-rw-r--r--  1 root root  723 Nov  8 17:13 .bashrc
drwx------  3 root root 4.0K Feb 15  2015 .config
drwxrwxr-x  2 root root 4.0K Nov  8 17:50 downloads
drwxr-xr-x  3 root root 4.0K Nov  8 19:23 .java
drwxr-xr-x  2 root root 4.0K Nov  8 17:50 .MiniDLNA_Cache
drwxrwxr-x  2 root root 4.0K Nov  8 17:50 Music
-rw-------  1 root root   57 Nov  8 18:10 .nano_history
drwxrwxr-x  2 root root 4.0K Nov  8 17:50 Pictures
-rw-r--r--  1 root root  140 Nov 19  2007 .profile
drwxrwxr-x  2 root root 4.0K Nov  8 17:50 Video
root@DietPi2:~#
I submitted a bug report, CODE b827ebf315ec-0
Mootch

Re: MiniDLNA not running on rPi2 Jessie

Post by Mootch »

I ended up re-imaging the device and minidlna seems to be working now. Not sure what I did differently last time. Thanks for looking into this.
User avatar
Fourdee
Site Admin
Posts: 2788
Joined: Tue Feb 06, 2007 1:36 pm

Re: MiniDLNA not running on rPi2 Jessie

Post by Fourdee »

Mootch wrote:I ended up re-imaging the device and minidlna seems to be working now. Not sure what I did differently last time. Thanks for looking into this.
Yep, looks like you had both LSB and SystemD init scripts. The systemd script was set to user=minidlna /lib/systemd/system/minidlna.service, that was causing the issue.
As for why you have both scripts, no idea lol :) Regardless i'll update the installation code to support both scripts, just incase the minidlna package decides to update to systemd scripts in the future.
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal or become a DietPi patron.
Post Reply