Jak możesz przeczytać, na przykład tutaj , logind, który jest częścią systemd, może ustawiać uprawnienia do niektórych urządzeń na sesje użytkownika. Jest też film pokazujący, jak tego rodzaju zachowanie działa w praktyce. Krótko mówiąc, jeśli zaczniesz, powiedzmy, amarok i odtworzysz jakiś utwór, usłyszysz dźwięk, dopóki nie przełączysz się na innego użytkownika lub TTY, gdzie masz tylko monit o zalogowanie. Jest tak, ponieważ aktywna sesja stała się nieaktywna.
Wiem, że możesz po prostu dodać użytkownika (lub użytkowników) do określonej grupy, w tym przypadku „audio”, i to „naprawi” ten problem, ale zastanawiam się, czy istnieje inne rozwiązanie. To, czego naprawdę chcę, to ustawić uprawnienia dla tego procesu, aby mógł on używać karty dźwiękowej przez cały czas, nawet gdy wszyscy użytkownicy mają zablokowane sesje.
Czy to jest możliwe? Pytam, ponieważ często słucham muzyki i tak naprawdę nie potrzebuję, aby monitor był włączony przez większość czasu, więc po prostu blokuję ekran. Ale kiedy blokuję ekran, aktywna sesja staje się nieaktywna i amarok przestaje grać. I tak, ekran powinien być zablokowany, a nie tylko wyłączony.
EDYTOWAĆ:
Nie sądzę, żeby miało znaczenie, z której dystrybucji korzystam, ponieważ jeśli na pokładzie jest system, byłby to dokładnie ten sam problem. W każdym razie używam sid Debiana, ale niektóre pakiety, takie jak systemd, udev (i niektóre zależności) pochodzą z gałęzi eksperymentalnej, a teraz jest to wersja 219-9.
nohup program_x & ; disown
może pomóc. Lub za pomocą ekranuloginctl enable-linger
konta?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.
Nie dotyczy to nieaktywnej sesji użytkownika, ponieważsystemd --user
jest obecna przez cały czas.Odpowiedzi:
Nie jestem pewien, jakiej wersji / smaku Linux używasz, ale wygląda na to, że listy ACL dla urządzeń dźwiękowych są kontrolowane przez ConsoleKit za pomocą reguł udev. Na moim hoście Debian widzę coś takiego jak poniżej w /lib/udev/rules.d/70-udev-acl.rules
Bawiłbym się odznaczeniem tego, aby konsolekit nie dodawał urządzeń dźwiękowych do swojej bazy danych i nie zarządzał listą ACL na urządzeniach dźwiękowych
źródło
audio group
do Amarok binarny i uprawnienia są następujące:-rwxr-sr-x
, ale gdy próbuję uruchomić Amaroka jako zwykły użytkownik, otrzymuję ten błąd:QDBusConnection: 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"
Daj mi powiedzieć, że niewiele wiem o dźwięku na komputerze z systemem Linux. Mea Culpa, jeśli to nie pomoże.
Ustawiłbym uprawnienia grupowe urządzenia audio:
do grupy, w której działa amarok. Użyj systemd, aby zmusić amaroka do uruchomienia w tej grupie. Najpierw skopiuj plik systemowy amaroka do / etc / systemd / user / i zmodyfikuj go:
(to modyfikacja, a nie cały plik).
Ale może być bardziej „wyrafinowana” odpowiedź z powodu wielu warstw, które są dzisiejszym systemem audio Linux.
źródło
chgrp audio
- wszystkie urządzenia w katalogu / dev / snd / mają jużaudio
grupę, ale nie powinno to mieć znaczenia, gdy używasz pulseaudio, i tak jest w tym przypadku. Jeśli chodzi o usługę systemd, próbowałem, ale dostałem następujący błąd:Failed at step GROUP spawning /usr/bin/amarok: Operation not permitted. amarok.service: main process exited, code=exited, status=216/GROUP
i nie sądzę, że mogę zmienić te grupy jako zwykły użytkownik. Mam inną usługę, która wymaga zmiany grupy, ale jest to normalny demon systemowy i działa dobrze. `Co powiesz na uruchomienie odtwarzacza w buforze ramki VNC? W mennicy 17 ...
Używałbyś VNC do przeglądania pulpitu, jak opisano w https://en.wikipedia.org/wiki/Xvfb
źródło
Usage scenarios
link do wiki i nie sądzę, żeby któryś z nich miał zastosowanie. Proces (amarok) potrzebuje tylko niektórych uprawnień i nie mam pojęcia, jak je ustawić, jeśli to w ogóle możliwe.Pulseaudio jest uruchamiane przez autostart xdg, który można znaleźć pod
~/.config/autostart/
. Jest plik o nazwiepulseaudio.desktop
, aw tym pliku zmieniłem domyślnąexec
linię na tę:Kiedy loguję się do systemu, proces pulseaudio wygląda następująco:
A teraz jestem w stanie słuchać muzyki przez cały czas. Myślę, że to było rozwiązanie, którego szukałem.
źródło