Wie Sie beispielsweise hier lesen können, kann logind, das Teil von systemd ist, Berechtigungen für einige Geräte für Benutzersitzungen festlegen. Es gibt auch ein Video, das zeigt, wie diese Art von Verhalten in der Praxis funktioniert. Kurz gesagt, wenn Sie anfangen, sagen wir Amarok, und ein Lied spielen, hören Sie den Ton, bis Sie zu einem anderen Benutzer oder TTY wechseln, wo Sie nur die Anmeldeaufforderung haben. Dies liegt daran, dass die aktive Sitzung inaktiv wurde.
Ich weiß, dass Sie einfach einen Benutzer (oder Benutzer) zu einer bestimmten Gruppe hinzufügen können, in diesem Fall "Audio", und das wird dieses Problem "beheben", aber ich frage mich, ob es eine andere Lösung gibt. Was ich wirklich möchte, ist, einige Berechtigungen für den Prozess festzulegen, damit die Soundkarte jederzeit verwendet werden kann, selbst wenn alle Benutzer ihre Sitzungen gesperrt haben.
Ist das möglich? Ich frage, weil ich oft Musik höre und mein Monitor die meiste Zeit nicht eingeschaltet sein muss, also sperre ich einfach den Bildschirm. Wenn ich den Bildschirm sperre, wird die aktive Sitzung inaktiv und amarok hört auf zu spielen. Und ja, der Bildschirm sollte gesperrt und nicht nur ausgeschaltet sein.
BEARBEITEN:
Ich denke nicht, dass es wichtig ist, welche Distribution ich benutze, denn wenn systemd an Bord ist, wäre es genau das gleiche Problem. Wie auch immer, ich verwende debian sid, aber einige Pakete wie systemd, udev (und einige Abhängigkeiten) stammen aus dem experimentellen Zweig, und jetzt ist es die 219-9-Version.
nohup program_x & ; disown
könnte Laufen helfen. Oder mit Bildschirmloginctl enable-linger
für das Konto zu verwenden?The systemd user instance is started after the first login of a user and killed after the last session of the user is closed. Sometimes it may be useful to start it right after boot, and keep the systemd user instance running after the last session closes, for instance to have some user process running without any open session. Lingering is used to that effect.
Das betrifft keine inaktive Benutzersitzung, dasystemd --user
sie ständig vorhanden ist.Antworten:
Ich bin nicht sicher, welche Version / Variante von Linux Sie verwenden, aber es sieht so aus, als würden ACLs für Soundgeräte von ConsoleKit über udev-Regeln gesteuert. Auf meinem Debian-Host sehe ich etwas wie das Folgende in /lib/udev/rules.d/70-udev-acl.rules
Ich würde damit spielen, dies zu deaktivieren, damit consolekit keine Audiogeräte in seine Datenbank einfügt und keine ACL auf Audiogeräten verwaltet
quelle
audio group
habe die Amarok-Binärdatei festgelegt und die Berechtigungen lauten wie folgt:-rwxr-sr-x
Wenn ich jedoch versuche, Amarok als regulären Benutzer zu starten, wird folgende FehlermeldungQDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave. unnamed app(24333): KUniqueApplication: Cannot find the D-Bus session server: "Unable to autolaunch when setuid"
Lassen Sie mich sagen, ich weiß wenig über Audio auf Linux-Desktops. Mea Culpa, wenn das nicht hilft.
Ich würde die Gruppenberechtigungen des Audiogeräts festlegen:
zu der Gruppe, in der Amarok ausgeführt wird. Verwenden Sie systemd, um Amarok zu zwingen, in dieser Gruppe ausgeführt zu werden. Kopieren Sie zuerst die amarok systemd-Datei nach / etc / systemd / user / und ändern Sie sie:
(Das ist eine Modifikation, nicht die gesamte Datei).
Aufgrund der vielen Schichten, die das heutige Linux-Audiosystem darstellt, kann es jedoch zu einer "differenzierteren" Antwort kommen.
quelle
chgrp audio
- alle Geräte unter / dev / snd / haben bereits dieaudio
Gruppe, aber das sollte keine Rolle spielen, wenn Sie pulseaudio verwenden, und das ist der Fall. Wenn es um den Dienst von systemd geht, habe ich es versucht, aber ich habe den folgenden Fehler erhalten:Failed at step GROUP spawning /usr/bin/amarok: Operation not permitted. amarok.service: main process exited, code=exited, status=216/GROUP
und ich glaube nicht, dass ich diese Gruppen als regulärer Benutzer ändern kann. Ich habe einen anderen Dienst, der eine Gruppenänderung erfordert, aber es ist ein normaler Systemdämon, und er funktioniert einwandfrei. `Wie wäre es, den Player in vnc framebuffer auszuführen? In Mint 17 ...
Sie würden VNC verwenden, um den Desktop wie unter https://en.wikipedia.org/wiki/Xvfb beschrieben anzuzeigen
quelle
Usage scenarios
Link im Wiki gelesen und glaube nicht, dass einer davon hier zutrifft. Der Prozess (Amarok) benötigt nur einige Berechtigungen, und ich habe keine Ahnung, wie ich sie festlegen soll, wenn dies überhaupt möglich ist.Pulseaudio wird über den xdg-Autostart gestartet, den Sie unter finden
~/.config/autostart/
. Es gibt eine Datei namenspulseaudio.desktop
, und in dieser Datei habe ich die Standardzeileexec
in diese geändert :Wenn ich mich beim System anmelde, sieht der Pulseaudio-Prozess folgendermaßen aus:
Und jetzt kann ich die ganze Zeit Musik hören. Ich denke, das ist die Lösung, nach der ich gesucht habe.
quelle