ubuntuusers.de

Probleme beim starten von minidlna

Status: Gelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

kevinj

Anmeldungsdatum:
6. Februar 2021

Beiträge: Zähle...

Hallo zusammen,

ich bin zugegebenermaßen noch ziemlich neu bei Linux/Ubuntu, lese aber schon seit über einem Jahr fleißig hier mit und habe mich jetzt registriert, da ich mal aselbst eine Frage stellen muss. Ich konnte bisher leider nichts passendes finden.

Ich betreibe bei mir einen kleinen Heimserver mit Ubuntu Server 20.04. Darauf laufen jetzt seit fast einem Jahr Nextcloud, ein Samba Server sowie homegear, openhab und calibre im docker container. Mein primäres Ziel war es den Server auch dazu zu nutzen, mich mit Linux vertrauter zu machen und zu lernen. Da ich mir eine vernünftige Absicherung (noch) nicht zutraue ist er nur aus dem Heimnetzwerk erreichbar.

Bisher habe ich eigentlich alles eingerichtet bekommen. Manchmal mit viel Recherche, aber ich finde so kann ich auch viel lernen. Nur Minidlna bekomme ich so überhaupt nicht ans laufen. Auf einem Raspberry hatte ich es schon mal in Betrieb, aber das war nur Spielerei.

Ich habe es über apt installiert und mir anschließend mit

1
sudo service minidlna status

den Status anzeigen lassen. Als erste kam das Probleme, es sei kein Zugriff auf /var/log/minidlna.log möglich. Das konnte ich beheben, indem ich einen neuen Ordner minidlna erzeugt und mit chown den User und Gruppe minidlna zum Besitzer gemacht habe. Ich fürchte aber, dass ich dabei nur am Symptom und nicht an der Ursache gearbeitet habe.

Denn wenn ich nun den Service neustarte und in den Status schaue, erhalte ich:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
minidlna.service - LSB: minidlna server
     Loaded: loaded (/etc/init.d/minidlna; generated)
    Drop-In: /etc/systemd/system/minidlna.service.d
             └─run-as-user.conf
     Active: active (exited) since Sat 2021-02-06 15:38:12 CET; 7s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 27897 ExecStart=/etc/init.d/minidlna start (code=exited, status=0/SUCCESS)

Feb 06 15:38:12 titiwu systemd[1]: Starting LSB: minidlna server...
Feb 06 15:38:12 titiwu minidlna[27907]: mkdir: cannot create directory ‘/run/minidlna’: Permission denied
Feb 06 15:38:12 titiwu systemd[1]: Started LSB: minidlna server.

Ich verstehe nicht, warum dieses Problem auftritt, den Service starte ich ja mit sudo, daher hätte ich gedacht, dass alle benötigten Rechte zum Starten des Service vorhanden sind. Der Service selbst läuft dann als User minidlna.

Gestern hatte ich ihn auch mal am Laufen, indem ich den Ordner in /run manuell erstellt und den Besitzer auf minidlna gesetzt habe. Nach einem Reboot tritt das Problem dann ja allerdings erneut auf. Außerdem lief zwar minidlna und ich konnte meine MP3 z.B. in VLC sehen, abspielen ging jedoch nicht.

Die Datei

1
/etc/default/minidlna

sieht folgendermaßen aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# Defaults for minidlna initscript
# sourced by /etc/init.d/minidlna
# installed at /etc/default/minidlna by the maintainer scripts

# These options can be set to modify the behavior of the minidlna init script.
# The options commented out show the default values.

# Start the daemon if set to "yes"
START_DAEMON="yes"

# Path to the configuration file
#CONFIGFILE="/etc/minidlna.conf"

# Path to the log file
LOGFILE="/var/log/minidlna/minidlna.log"

# User and group the daemon should run as
#USER="minidlna"
#GROUP="minidlna"

# Additional options that are passed to the daemon
# We pass -r option to do soft non-destructive rebuild on every start-up.
# If your systerm restarts often, you might want to remove this.
DAEMON_OPTS="-r"

Könnt ihr mir weiterhelfen, wo ich nach dem Fehler suchen muss?

Vielen Dank und ein schönes Wochenende Kevin

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

So wie ich das Problem verstehe, liegt es genau am Anlegen dieses Ordners. Der Nutzer minidlna braucht also die Berechtigung, /run/minidlna anzulegen, die hat er aber nicht. Ein möglicher Workaround wäre z.B. ein separates Verzeichis zu erstellen, bsw. /home/minidlna (mit entsprechenden Rechten für den Nutzer) und in der /etc/minidlna.conf die Einträge

db_dir=/home/minidlna/database
log_dir=/home/minidlna

zu setzen. Dazu eine passende Unit, dann läuft alles unter Nutzerrechten.

Eine (vereinfachte) Service-Unit dazu wäre dann

# /etc/systemd/system/minidlna.service
[Unit]
Description=minidlna server
After=networkd.service network.target

[Service]
Type=simple
User=minidlna
ExecStart=/usr/bin/minidlnad -S -P /home/minidlna/my.pid
PIDFile=/home/minidlna/my.pid

[Install]
WantedBy=multi-user.target

Alternativ kannst du auch das Verzeichnis vor dem Start von minidlna über systemd-tmpfiles anlegen und die Berechtigungen anpassen. So macht das afair archlinux.

kevinj

(Themenstarter)

Anmeldungsdatum:
6. Februar 2021

Beiträge: 2

Hallo,

danke für die schnelle Hilfe. Ich habe die entsprechenden Verzeichnisse jetzt erstellt. Allerdings nicht in /home sondern /opt, da dort auch Daten für meine docker Container liegen. So ist es für mich persönlich übersichtlicher.

Allerdings musste ich in /etc/init.d/minidlna das PIDDIR anpassen. Sonst hat er immer wieder versucht unter /run ein Verzeichnis anzulegen. Das Log habe ich unter /var/log/minidlna in einen eigenen Ordner gelegt, der minidlna gehört.

In deiner Service Unit habe ich noch den Pfad von ExecStart angepasst, bei deinem Vorschlag bekam ich ein "no such file or directory". In /etc/init.d/minidlna war dort /usr/sbin/minidlnad. Das s habe ich hinzugefügt und jetzt läuft es.

Danke Kevin

Antworten |