web-dev-qa-db-ja.com

WSL Eを使用したPulseaudio:[(null)] pulsecore / pid.c:デーモンは既に実行中です

私はLinuxでかなり新しく、Ubuntuを使用してWindows 10でWSLで遊んでおり、GUIプログラムを開く方法を学ぶことができました。 このチュートリアル は、サウンドがあってもGUIアプリを実行できるようにしました。セッションを終了してpulseaudioサーバーを停止するまでは最高でしたが、次にそれを実行しようとしたときに会った次の2つのエラーメッセージ:

E: [(null)] pulsecore/pid.c: Daemon already running.
E: [(null)] daemon/main.c: pa_pid_file_create() failed.

私は解決策を見つけることができずにどこでも見ましたが、コマンドpulseaudio.exe -k --killを実行してデーモンを殺しましたが、私が研究できることは、これらのコマンドはWindows 10では動作しませんpulseaudio.exeを終了するとデーモンが適切に終了しません。助けてください!ありがとうございました!

2
Danilo Reyes

短い答え:ファイルを削除する

%USERPROFILE%\。Pulse \%USERDOMAIN%-runtime\pid

(移動プロファイルを使用している場合は、USERDOMAINUSERDOMAIN_ROAMINGPROFILEに置き換えてください)

説明:最近、これに遭遇し、Sysinternalsを使用しました PROCMON 原因を追跡できました: Troubleshooting pulseaudio.exe launch failure using Sysinternals Procmon

通常、サービスとして実行するように設計されたGNUアプリケーションは、重複した起動を回避するために、ランタイムPIDファイルをセットアップする慣行に従います。クラッシュすると、ほとんどの場合、サービスの開始/停止スクリプトが古いPIDファイルの削除を処理します。

ただし、この場合、pulseaudio.exeの開始と停止を処理するスクリプトがないため、クラッシュ時にPIDファイルが残り、次回起動時にアプリが開始を拒否し、PIDファイルが表示され、誤って「既に実行中です」と結論付けます

WSLISNOTLINUX 、ところで、pulseaudio.exeはWSLに依存しないウィンドウで実行するようにコンパイルされたGNUアプリケーション)

1
Costin Gușă