Je voudrais exécuter un programme à distance (via ssh) mais avec le son allant vers la machine distante où le programme s'exécute réellement. Cela fonctionnerait normalement avec ALSA, mais pulseaudio vérifie apparemment un authentificateur de session avant d'autoriser la connexion à partir d'un client.
Comment rendre ce contrôle moins strict?
local: $ ssh remote # remote is running pulseaudio and has sound hardware
remote:$ paplay something.wav
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
remote:$ audacious something.mp3 # opens on local's X11 display
pulseaudio: Failed to connect to server: Connection refused
pulseaudio: Failed to connect to server: Connection refused
ssh
pulseaudio
eudoxos
la source
la source
pax11publish -r
fonctionne sur mon Ubuntu 19.10.Réponses:
Dans mon cas, les éléments suivants ont fonctionné pour moi:
la source
Le coupable est que ssh ne définit pas
DBUS_SESSION_BUS_ADDRESS
ce qui est utilisé pour se connecter à Pulseaudio. Une solution (basée sur ce post ) a été d'ajouter les lignes suivantes à my~/.bashrc
, qui sont utilisées lors de la connexion via ssh:il utilise le PID de nautilus (vous devrez peut-être le changer pour obtenir un processus qui est toujours exécuté dans la session) et recherche ses variables d'environnement
DBUS_SESSION_BUS_ADDRESS
et les exporte.Cela permet aux programmes de connexion à Pulse de fonctionner correctement. D'autres programmes communiquant via la session d-bus fonctionnent également (comme audtool pour conduire audacieusement sur la ligne de commande).
la source
export DBUS_SESSION_BUS_ADDRESS=$(sudo cat /proc/$(pidof nautilus | cut -f1 -d" ")/environ | tr '\0' '\n' | grep DBUS_SESSION_BUS_ADDRESS | cut -d '=' -f2-)
car pidof renvoie à la fois processid et parent processid. Mais dans mon cas, cette solution ne fonctionne pas; Je souffre toujours duconnection refused
problème.