Pulseaudio는 strace를 사용하여 실행하지 않으면 올바르게 시작되지 않습니다.

Pulseaudio는 strace를 사용하여 실행하지 않으면 올바르게 시작되지 않습니다.

이것은 내가 만난 이상한 문제입니다.

저는 PulseAudio를 사용하여 음악 스트리밍을 위한 가상 머신에 가짜 루프백 인터페이스를 만들어 왔습니다. 며칠 전 서버가 예기치 않게 다시 시작되었고 갑자기 PulseAudio 데몬이 소켓에 바인딩할 수 없습니다(루트로 실행하는 것은 권장되지 않지만 이는 이 작업을 수행하는 유일한 목적인 VM입니다). 루트로 실행 중이므로 이론적으로는 이 작업을 수행할 수 있는 모든 권한이 있어야 하므로 다른 일이 벌어지고 있는 것으로 의심됩니다.

PA 데몬은 이제 systemd셀에서 시작됩니다. 루트 계정에서 똑같은 명령을 실행하면 제대로 작동하는 것 같았기 때문에 stracesystemd 장치를 사용하여 그것이 무엇을 하고 있는지 살펴보기로 결정했습니다. 그러나 나는 이것을 했고 pulseaudio 데몬이 올바르게 바인딩되었습니다! 부팅되고 예상대로 작동하기 시작합니다! 그래서 임시방편으로 현재 장치에서 다음 명령을 실행하여 작동하게 하고 있습니다.

 /bin/strace -e '!all' /bin/pulseaudio --start --daemonize=no

내 질문은 프로그램 앞에서 strace를 실행하면 동작이 변경되는 이유는 무엇입니까? 나는 이것이 환경 변수와 관련이 있을 수 있다고 생각하지만 strace가 이를 로드하는지 여부를 알 수 없는 것 같습니다.

편집: 이 가상 머신은 의도적으로 헤드리스이며 디스플레이 관리자가 없다는 점에 유의해야 합니다. 저는 dbus를 작동시키기 위해 Xvfb와 1x1 모니터를 사용하고 있습니다. 모든 것이 약간의 해킹이지만 이번 주말까지는 작동하지 않았습니다.

관련 정보