我们有许多 Ubuntu 桌面,它们的主目录都以 NFS 共享的形式挂载。如果 NFS 连接断开,即使时间似乎不到一秒钟,pulseaudio 也会失去作用。结果要么是临时软锁(Ubuntu 屏幕变灰),要么是崩溃,甚至偶尔会出现一些恐慌。只需在 Google 上搜索这些术语,您就可以看到无数的 NFS+pulseaudio 问题。
出于这个原因,我真的想将 pulse 从 /home 移出并将其放在更合适或更适合机器的地方。
出于某种原因,pulseaudio 完全是为了安全。我对此并不反感,尽管我不确定为什么它对于声音守护进程如此重要。但他们设置的限制太严格了。
例如,我尝试将 ~/.pulse 符号链接到 /tmp,它只会返回以下内容:
Failed to create secure directory: Too many levels of symbolic links
脉冲将停止。
然后我遇到了此主题它说明了可以设置环境变量以将脉冲引导到其他目录。因此,我尝试设置脉冲启动器(/etc/xdg/autostart/pulseaudio.desktop
)以使用以下 Exec 行:
Exec='PULSE_DIR="/tmp/$( whoami )-pulse"; PULSE_CONFIG_PATH=PULSE_DIR; PULSE_STATE_PATH=PULSE_DIR; PULSE_RUNTIME_PATH=PULSE_DIR; mkdir -p $PULSE_DIR && chmod 700 $PULSE_DIR && start-pulseaudio-x11'
我甚至尝试将权限和所有者设置为我认为 pulse 会满意的设置。我从发布的堆栈跟踪中了解到了它想要的内容错误 662(那里也有关于此问题的更多信息)。
但是这组命令会导致脉冲抛出以下内容然后退出。
Failed to create secure directory: Permission denied
现在,由于开发人员似乎普遍不愿意接受这其中的任何问题,我需要找到一些方法来解决这个问题。如果不行,我将删除脉冲,这对于这些机器的未来兼容性来说并不理想。
我们已经浪费了大量的人力来追踪和尝试解决这个问题,现在是时候继续前进了。
如果有人对解决方法有任何想法或有有关此问题的更多信息,我将不胜感激。
答案1
PulseAudio 开发人员似乎不喜欢很多东西,其中之一就是这种解决方法:
使用 PulseAudio 作为系统守护进程,而不是按用户运行。
正如我提到的,开发人员并不特别推荐这样做,出于自己的原因。如果您这样做,请注意对您的系统的潜在安全影响。
答案2
虽然有点晚了,但也许还是有帮助的。
绑定到其他文件夹(NFS 安装之外)会很有用。我刚刚试过,成功了。
安装-o 绑定 /tmp/.johndoe_puls /home/johndoe/.puls
当然,这只能由root用户完成。bindmount的挂载点获得与挂载目标相同的权限集。
问候,Jörn
答案3
您的脚本有几个错误。当您想将 pulseaudio 目录移出主目录时,您必须将以下代码添加到您的~/.bash_profile
配置文件中:
PULSE_DIR="/tmp/$( whoami )-pulse"
mkdir -p $PULSE_DIR && chmod 700 $PULSE_DIR
export PULSE_CONFIG_PATH=$PULSE_DIR
export PULSE_STATE_PATH=$PULSE_DIR
export PULSE_RUNTIME_PATH=$PULSE_DIR
问候,Jiri