나는 팔로우하고 있다이 질문명령줄에서 볼륨 레벨을 설정합니다. tmux 세션 내에서(실제로는 tmux에서 실행되는 노드 프로세스에서) 볼륨을 설정할 수 있어야 합니다.
SSH 세션에서 바로 실행하면 amixer -D pulse sset Master 50%
정상적으로 작동합니다.
$ amixer -D pulse sset Master 50%
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 26214 [50%] [on]
Front Right: Playback 26214 [50%] [on]
tmux를 열고 동일한 명령을 실행하면 실패합니다.
$ tmux
...
$ amixer -D pulse sset Master 50%
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
amixer: Mixer attach pulse error: Connection refused
노드 내에서는 child_process.spawn
tmux에서 실행하는 것과 동일한 결과를 제공하는 함수를 사용하고 있으므로 관련이 있다고 가정합니다.
무엇을 제공합니까?
답변1
궁금한 점은 내 tmux 세션이 시스템 전체 서비스 파일에서 시작되었고 사용자 수준 pulseaudio 서비스와 통신하도록 설정된 환경 변수가 없었기 때문입니다.
내 amixer 명령 앞에 다음 문자열을 추가하면 문제가 해결됩니다.
PULSE_SERVER=unix:/run/user/1000/pulse/native
이렇게:
$ PULSE_SERVER=unix:/run/user/1000/pulse/native amixer -D pulse sset Master 50%
다를 수 /run/user/1000
있습니다. 실행 중인지 확인할 수 있습니다.
$ echo $XDG_RUNTIME_DIR
사용하려는 pulseaudio 세션의 사용자로 로그인된 세션에서.