これは私が出会った奇妙な問題です。
私はPulseAudioを使って音楽ストリーミングのための仮想マシンに偽のループバックインターフェースを作りました。数日前、サーバーが予期せず再起動され、突然PulseAudioデーモンがソケットにバインドできませんでした(rootとして実行することはお勧めできませんが、これを行う唯一の目的であるVMです)。 rootとして実行されているため、理論的にはこのタスクを実行するためのすべての権限が必要であるため、他のことが起こっていると疑われます。
PAデーモンはsystemd
セルから始まります。 rootアカウントで同じコマンドを実行するとうまくいくようだったので、strace
systemdデバイスを使って何をしているのかを調べることにしました。しかし、私はこれをし、pulseaudioデーモンが正しくバインドされました!起動し、期待通りに動作し始めます!そのため、一時的な方法で現在のデバイスで次のコマンドを実行して動作させています。
/bin/strace -e '!all' /bin/pulseaudio --start --daemonize=no
私の質問は、プログラムの前でstraceを実行すると動作が変わるのはなぜですか?私はこれが環境変数と関係があると思いますが、straceがそれをロードするかどうかはわかりません。
編集:この仮想マシンは意図的にヘッドレスであり、ディスプレイマネージャがないことに注意してください。私はdbusを動作させるためにXvfbと1x1モニタを使用しています。すべてが少しハッキングですが、今週末までは動作しませんでした。