SSH를 통해 원격으로 프로그램을 실행하고 싶지만 프로그램이 실제로 실행되고 있는 원격 컴퓨터로 오디오를 보내고 싶습니다. 이것은 일반적으로 ALSA에서 작동하지만 pulseaudio는 클라이언트 연결을 허용하기 전에 일부 세션 유효성 검사기를 분명히 확인합니다.
이 검사를 덜 엄격하게 만들려면 어떻게 해야 합니까?
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
답변1
내 경우에는 다음이 나에게 효과적이었습니다.
pax11publish -r
답변2
DBUS_SESSION_BUS_ADDRESS
원인은 ssh 에 Pulseaudio에 연결하도록 설정된 연결이 없다는 것입니다 . 솔루션(기반이 게시물)는 SSH를 통해 연결할 때 사용되는 my 에 다음 줄을 추가하는 것입니다 ~/.bashrc
.
if [[ -n $SSH_CLIENT ]]; then
export DBUS_SESSION_BUS_ADDRESS=`cat /proc/$(pidof nautilus)/environ | tr '\0' '\n' | grep DBUS_SESSION_BUS_ADDRESS | cut -d '=' -f2-`
fi
노틸러스의 PID를 사용하고(세션에서 프로세스가 항상 실행되도록 변경해야 할 수도 있음) 환경 변수를 검색하여 DBUS_SESSION_BUS_ADDRESS
내보냅니다.
이렇게 하면 Pulse에 연결된 프로그램이 제대로 실행됩니다. 세션 d-bus를 통해 통신하는 다른 프로그램도 작동합니다(예: 운전자용 audtool).용감한명령줄을 통해).