Nächste: Virtualisierungsdienste, Vorige: Dienste zur Stromverbrauchsverwaltung, Nach oben: Dienste [Inhalt][Index]
Das Modul (gnu services audio)
stellt einen Dienst zur Verfügung, um
MPD (den Music Player Daemon) zu starten.
Der Music Player Daemon (MPD) ist ein Dienst, der Musik abspielen kann und der dabei vom lokalen Rechner oder über das Netzwerk durch verschiedene Clients angesteuert werden kann.
Das folgende Beispiel zeigt die einfachstmögliche Konfiguration, wie man
eine Musiksammlung in /srv/music mit einem unter dem vorgegebenen
Benutzer ‘mpd’ laufenden mpd
anbieten kann. Dabei wird
PulseAudio zur Ausgabe verwendet. Der Benutzer startet einen eigenen
PulseAudio-Daemon, der mit dem normalen Benutzerkonto um die Soundkarte
konkurrieren kann. Dann kann es notwendig sein, die Wiedergabe anderer
Audio-Anwendungen abzubrechen, um die Ausgabe von MPD zu hören, und
andersherum.
(service mpd-service-type
(mpd-configuration
(music-directory "/srv/music")))
Wichtig: Auf das als
music-directory
angegebene Verzeichnis muss der MPD-Benutzer, vorgegeben ist ‘mpd’, Lesezugriff haben. Wenn Berechtigungen fehlen, findet man Fehlermeldungen ‘Permission denied’ in den MPD-Protokollen, die sich nach Vorgabe in /var/log/messages befinden.
Die meisten MPD-Clients lösen eine Aktualisierung der Datenbank aus, wenn
sie eine Verbindung aufbauen, aber Sie können sie auch selbst mit der
update
-Aktion auslösen:
herd update mpd
Alle MPD-Konfigurationsfelder werden nun beschrieben; danach folgt ein komplexeres Beispiel.
Der Diensttyp für mpd
.
Verfügbare mpd-configuration
-Felder sind:
package
(Vorgabe: mpd
) (Typ: dateiartig)Das MPD-Paket.
user
(Typ: Benutzerkonto)Das Benutzerkonto, mit dem mpd ausgeführt wird.
group
(Typ: Benutzergruppe)Die Benutzergruppe, mit der mpd ausgeführt wird.
Vorgegeben ist %mpd-group
, was für eine System-Benutzergruppe mit
Namen „mpd“ steht.
shepherd-requirement
(Vorgabe: '()
) (Typ: Liste-von-Symbolen)Eine Liste von Symbolen, die Shepherd-Dienste angeben, von welchen dieser Dienst abhängen soll.
environment-variables
(Vorgabe: '("PULSE_CLIENTCONFIG=/etc/pulse/client.conf" "PULSE_CONFIG=/etc/pulse/daemon.conf")
) (Typ: Liste-von-Zeichenketten)Eine Liste von Zeichenketten, die Umgebungsvariable festlegen.
log-file
(Typ: Vielleicht-Zeichenkette)Der Ort, wo die Protokolldatei gespeichert werden soll. Wenn Sie hier nichts angeben, werden Protokolle an den lokal laufenden syslog-Daemon geschickt. Sie können auch einen Dateinamen angeben, zum Beispiel /var/log/mpd.log.
log-level
(Typ: Vielleicht-Zeichenkette)Unterhalb welchen Schwellwerts keine Nachrichten protokolliert werden
sollen. Zur Auswahl stehen, absteigend sortiert nach der Ausführlichkeit:
verbose
(ausführliche Warnmeldungen), info
(Informationen),
notice
(Benachrichtigungen), warning
(Warnmeldungen) und
error
(nur Fehler).
music-directory
(Typ: Vielleicht-Zeichenkette)Das Verzeichis, in dem nach Musikdateien gesucht wird.
music-dir
(Typ: Vielleicht-Zeichenkette)Das Verzeichis, in dem nach Musikdateien gesucht wird.
playlist-directory
(Typ: Vielleicht-Zeichenkette)Das Verzeichnis, um Wiedergabelisten („Playlists“) zu speichern.
playlist-dir
(Typ: Vielleicht-Zeichenkette)Das Verzeichnis, um Wiedergabelisten („Playlists“) zu speichern.
db-file
(Typ: Vielleicht-Zeichenkette)Der Ort, an dem die Musikdatenbank gespeichert wird. Wenn nichts angegeben wird, wird ~/.cache/db benutzt.
state-file
(Typ: Vielleicht-Zeichenkette)Der Ort, an dem die Datei mit dem aktuellen Zustand von MPD gespeichert wird.
sticker-file
(Typ: Vielleicht-Zeichenkette)Der Ort, an dem die Sticker-Datenbank gespeichert wird.
default-port
(Vorgabe: 6600
) (Typ: Vielleicht-Port)Was die Voreinstellung dafür sein soll, auf welchem Port mpd ausgeführt wird.
endpoints
(Typ: Vielleicht-Liste-von-Zeichenketten)Die Adressen, an die sich mpd binden wird. Sie können dabei auch einen Port
angeben, um einen anderen Port als den voreingestellten default-port
zu benutzen, etwa localhost:6602
, und wenn Sie IPv6-Adressen angeben,
müssen Sie außen herum eckige Klammern schreiben, um den Port angeben zu
können. Um einen Unix-Socket zu benutzen, würden Sie hier einen absoluten
Pfad angeben oder einen Pfad, der mit ~
beginnt, angeben.
address
(Typ: Vielleicht-Zeichenkette)Die Adresse, an die sich mpd binden wird. Um einen Unix-Socket zu benutzen, kann hier ein absoluter Pfad angegeben werden.
database
(Typ: Vielleicht-„mpd-plugin“)Eine Konfiguration eines MPD-Datenbank-Plugins.
partitions
(Vorgabe: '()
) (Typ: Liste-von-„mpd-partition“)Liste von MPD-Partitionen.
neighbors
(Vorgabe: '()
) (Typ: Liste-von-„mpd-plugin“)Liste von Konfigurationen von MPD-Neighbor-Plugins.
inputs
(Vorgabe: '()
) (Typ: Liste-von-„mpd-plugin“)Liste von Konfigurationen von MPD-Eingaben-Plugins.
archive-plugins
(Vorgabe: '()
) (Typ: Liste-von-„mpd-plugin“)Liste von Konfigurationen von MPD-Archiv-Plugins.
auto-update?
(Typ: Vielleicht-Boolescher-Ausdruck)Ob die Musikdatenbank automatisch aktualisiert werden soll, wenn Änderungen an Dateien in music-directory festgestellt werden.
input-cache-size
(Typ: Vielleicht-Zeichenkette)Größe von MPDs Zwischenspeicherung der Eingabe.
decoders
(Vorgabe: '()
) (Typ: Liste-von-„mpd-plugin“)Liste von Konfigurationen von MPD-Decoder-Plugins.
resampler
(Typ: Vielleicht-„mpd-plugin“)Eine Konfiguration eines MPD-Resampler-Plugins.
filters
(Vorgabe: '()
) (Typ: Liste-von-„mpd-plugin“)Liste von Konfigurationen von MPD-Filter-Plugins.
outputs
(Typ: Liste-von-„mpd-plugin“-oder-von-„mpd-output“)Welche Tonausgaben MPD benutzen kann. Vorgegeben ist eine einzelne Ausgabe, die Pulseaudio benutzt.
playlist-plugins
(Vorgabe: '()
) (Typ: Liste-von-„mpd-plugin“)Liste von Konfigurationen von MPD-Plugins für Wiedergabelisten (Playlists).
extra-options
(Vorgabe: '()
) (Typ: Assoziative-Liste)Eine assoziative Liste, die Optionssymbole oder Zeichenketten auf Zeichenketten abbildet. Sie wird an die Konfiguration angehängt.
Datentyp, der ein Plugin für mpd
repräsentiert.
plugin
(Typ: Vielleicht-Zeichenkette)Plugin-Name.
name
(Typ: Vielleicht-Zeichenkette)Name.
enabled?
(Typ: Vielleicht-Boolescher-Ausdruck)Gibt an, ob das Plugin aktiviert ist oder nicht.
extra-options
(Vorgabe: '()
) (Typ: Assoziative-Liste)Eine assoziative Liste, die Optionssymbole oder Zeichenketten auf Zeichenketten abbildet. Sie wird an die Plugin-Konfiguration angehängt. Siehe die MPD plugin reference für eine Liste, welche Optionen es gibt.
Datentyp, der eine Partition von mpd
repräsentiert.
name
(Typ: Zeichenkette)Name der Partition.
extra-options
(Vorgabe: '()
) (Typ: Assoziative-Liste)Eine assoziative Liste, die Optionssymbole oder Zeichenketten auf Zeichenketten abbildet. Sie wird an die Plugin-Konfiguration angehängt. Siehe die Configuring Partitions für eine Liste, welche Optionen bei Partitionen möglich sind.
Verfügbare mpd-output
-Felder sind:
name
(Vorgabe: "MPD"
) (Typ: Zeichenkette)Der Name der Tonausgabe.
type
(Vorgabe: "pulse"
) (Typ: Zeichenkette)Der Typ der Tonausgabe.
enabled?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Gibt an, ob diese Tonausgabe aktiviert sein soll, wenn MPD gestartet wird. Vorgegeben ist, alle Tonausgaben zu aktivieren. Das entspricht der Voreinstellung, wenn keine Zustandsdatei existiert; mit Zustandsdatei wird der Zustand von früher wiederhergestellt.
format
(Typ: Vielleicht-Zeichenkette)Erzwingt ein bestimmtes Tonformat für die Ausgabe. Siehe Global Audio Format für eine genauere Beschreibung.
tags?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Wenn es auf #f
steht, sendet MPD keine Tags an diese Ausgabe. Dies
wird nur berücksichtigt, wenn das Ausgabe-Plugin Tags empfangen kann, wie
beim httpd
-Ausgabe-Plugin.
always-on?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Wenn es auf #t
steht, versucht MPD, diese Tonausgabe immer offen zu
lassen. Das kann bei Streaming-Servern helfen, wo man nicht will,
dass die Verbindung zu allen Zuhörern abbricht, nur weil das Abspielen aus
irgendeinem Grund angehalten wurde.
mixer-type
(Typ: Vielleicht-Zeichenkette)Für dieses Feld wird eine Zeichenkette akzeptiert, die das für diese
Tonausgabe zu benutzende Mischpult („Mixer“) bezeichnet. Zur Wahl stehen das
hardware
-Mischpult, das software
-Mischpult, das
null
-Mischpult oder kein Mischpult (none
). Mit dem
null
-Mischpult kann die Lautstärke eingestellt werden, aber ohne
Auswirkung; das kann als Trick benutzt werden, um ein externes Mischpult zu
implementieren. Wenn nichts angegeben wird, wird das
hardware
-Mischpult benutzt, wenn es vom Gerät unterstützt wird.
replay-gain-handler
(Typ: Vielleicht-Zeichenkette)Für dieses Feld wird eine Zeichenkette akzeptiert, die die anzuwendende
Wiedergabe-Verstärkung
benennt. Bei software
wird eine interne Lautstärkeregelung in
Software verwendet, bei mixer
wird die externe Hardware verwendet,
die konfiguriert ist, und bei none
findet auf dieser Ausgabe keine
Wiedergabe-Verstärkung statt.
extra-options
(Vorgabe: '()
) (Typ: Assoziative-Liste)Eine assoziative Liste, die Optionssymbole oder Zeichenketten auf Zeichenketten abbildet. Sie wird an die Tonausgabenkonfiguration angehängt.
Das folgende Beispiel zeigt eine Konfiguration von mpd
, die einige
Plugins konfiguriert und eine HTTP-Audiostreaming-Tonausgabe anbietet.
(service mpd-service-type
(mpd-configuration
(outputs
(list (mpd-output
(name "streaming")
(type "httpd")
(mixer-type 'null)
(extra-options
`((encoder . "vorbis")
(port . "8080"))))))
(decoders
(list (mpd-plugin
(plugin "mikmod")
(enabled? #f))
(mpd-plugin
(plugin "openmpt")
(enabled? #t)
(extra-options `((repeat-count . -1)
(interpolation-filter . 1))))))
(resampler (mpd-plugin
(plugin "libsamplerate")
(extra-options `((type . 0)))))))
myMPD ist eine für Mobilgeräte geeignete Oberfläche für MPD auf einem Webserver.
Folgendes Beispiel zeigt eine Instanz von myMPD, die auf Port 80 lauscht, wobei Albenbilder nicht zwischengespeichert werden.
(service mympd-service-type
(mympd-configuration
(port 80)
(covercache-ttl 0)))
Der Diensttyp für mympd
.
Verfügbare mympd-configuration
-Felder sind:
package
(Vorgabe: mympd
) (Typ: dateiartig)Das Paketobjekt von myMPD.
shepherd-requirement
(Vorgabe: '()
) (Typ: Liste-von-Symbolen)Eine Liste von Symbolen, die andere Shepherd-Dienste angeben, von denen dieser Dienst abhängen soll.
user
(Vorgabe: %mympd-user
) (Typ: Benutzerkonto)Das Benutzerkonto, dem der mympd
-Prozess gehören soll.
Vorgegeben ist %mympd-user
, was für ein System-Benutzerkonto mit
Namen „mympd“ steht, das Mitglied der Benutzergruppe group ist (siehe
unten).
group
(Vorgabe: %mympd-group
) (Typ: Benutzergruppe)Gruppe des Besitzers des mympd
-Prozesses.
Vorgegeben ist %mympd-group
, was für eine System-Benutzergruppe mit
Namen „mympd“ steht.
work-directory
(Vorgabe: "/var/lib/mympd"
) (Typ: Zeichenkette)Wo die Daten von myMPD gespeichert werden sollen.
cache-directory
(Vorgabe: "/var/cache/mympd"
) (Typ: Zeichenkette)Wo der Zwischenspeicher von myMPD gespeichert werden soll.
acl
(Typ: Vielleicht-„mympd-ip-acl“)Zugriffssteuerungsliste (ACL), welche Rechner auf den myMPD-Webserver zugreifen dürfen.
covercache-ttl
(Vorgabe: 31
) (Typ: Vielleicht-Ganze-Zahl)Wie lange Albenbilder zwischengespeichert werden. Bei 0
werden
Albenbilder nicht zwischengespeichert.
http?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)HTTP-Unterstützung.
host
(Vorgabe: "[::]"
) (Typ: Zeichenkette)Rechnername, auf dem gelauscht werden soll.
port
(Vorgabe: 80
) (Typ: Vielleicht-Zahl)Auf welchen HTTP-Port gelauscht werden soll.
log-level
(Vorgabe: 5
) (Typ: Ganze-Zahl)Wie detailliert die Protokolle sein sollen. Möglich sind Werte von 0
bis 7
.
log-to
(Typ: Vielleicht-Zeichenkette)Wohin Protokolle geschickt werden. Wenn nichts angegeben wird, werden Protokolle beim lokal laufenden Syslog-Dienst unter der Syslog-Einrichtung (Facility) ‘daemon’ eingeordnet. Sie können auch einen Dateinamen angeben, zum Beispiel /var/log/mympd.log.
lualibs
(Vorgabe: "all"
) (Typ: Vielleicht-Zeichenkette)Siehe https://jcorporation.github.io/myMPD/scripting/#lua-standard-libraries.
uri
(Typ: Vielleicht-Zeichenkette)Eine andere URI für myMPD vorgeben. Siehe https://github.com/jcorporation/myMPD/issues/950.
script-acl
(Vorgabe: (mympd-ip-acl (allow '("127.0.0.1")))
) (Typ: Vielleicht-„mympd-ip-acl“)Zugriffssteuerungsliste (ACL), welche Rechner auf die Scripting-Schnittstelle zugreifen dürfen.
ssl?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)SSL/TLS-Unterstützung.
ssl-port
(Vorgabe: 443
) (Typ: Vielleicht-Port)Port, auf dem auf HTTPS gelauscht wird.
ssl-cert
(Typ: Vielleicht-Zeichenkette)Pfad zum PEM-kodierten X.509-SSL/TLS-Zertifikat (der öffentliche Schlüssel).
ssl-key
(Typ: Vielleicht-Zeichenkette)Pfad zum PEM-kodierten privaten Schlüssel für SSL/TLS.
pin-hash
(Typ: Vielleicht-Zeichenkette)Mit SHA-256 gehashte PIN, die durch myMPD vom Benutzer angefordert wird, wenn der Benutzer auf Einstellungen zugreifen möchte.
save-caches?
(Typ: Vielleicht-Boolescher-Ausdruck)Ob Zwischenspeicher erhalten werden, wenn der Dienst neu gestartet wird.
Verfügbare mympd-ip-acl
-Felder sind:
allow
(Vorgabe: '()
) (Typ: Liste-von-Zeichenketten)Zugelassene IP-Adressen.
deny
(Vorgabe: '()
) (Typ: Liste-von-Zeichenketten)Verbotene IP-Adressen.
Nächste: Virtualisierungsdienste, Vorige: Dienste zur Stromverbrauchsverwaltung, Nach oben: Dienste [Inhalt][Index]