我对 Linux 还不是很熟悉,我一直在使用 Ubuntu 在 Windows 10 上使用 WSL,并且我已经学会了如何打开 GUI 程序,我可以更进一步使用本教程这使得我甚至可以运行有声音的 GUI 应用程序,这很棒,直到我结束会话并停止 pulseaudio 服务器,然后下次我尝试运行它时遇到了以下两个错误消息:
E: [(null)] pulsecore/pid.c: Daemon already running.
E: [(null)] daemon/main.c: pa_pid_file_create() failed.
我到处都找过了,但还是没能找到解决办法。我尝试运行 pulseaudio.exe -k --kill 命令来终止守护进程,但据我研究,这些命令在 Windows 10 上不起作用。使用 taskkill 终止 pulseaudio.exe 也无法正常终止守护进程,有人知道吗?我需要帮助!谢谢!
答案1
简短回答:删除文件
%USERPROFILE%\.pulse\%USERDOMAIN%-runtime\pid
(如果您使用漫游配置文件,请替换USERDOMAIN
为)USERDOMAIN_ROAMINGPROFILE
解释:我最近遇到了这个问题,并使用 Sysinternals进程监控我成功找出了原因:
通常,设计为以服务形式运行的 GNU 应用程序遵循设置运行时 PID 文件的做法,以避免重复启动。崩溃时,服务的启动/停止脚本在大多数情况下会处理删除过时的 PID 文件。
然而,在这种情况下,没有脚本处理 pulseaudio.exe 的启动和停止,因此崩溃时 PID 文件仍然存在,然后在下次启动时,应用程序拒绝启动,看到 PID 文件并错误地得出结论“哎呀,我们已经在运行”
(西弗吉尼亚海岸 是 不是 Linux顺便说一句;pulseadio.exe 是一个 GNU 应用程序,编译后可在 Windows 中独立于 WSL 运行)
答案2
对我来说是 %COMPUTERNAME%
del %USERPROFILE%\.pulse\%COMPUTERNAME%-runtime\pid /q