把pulseaudio移出家门

我们有一堆Ubuntu桌面,其主目录作为NFS共享挂载。 如果一个NFS连接被丢弃,即使看起来不到一秒钟,pulseaudio也会失去主意。 结果要么是暂时的软锁(Ubuntu会让屏幕灰屏),崩溃,甚至是一些恐慌。 您可以通过简单的Googlesearch条件查看无数的NFS + pulseaudio问题。

由于这个原因,我真的只想把脉冲从家里搬出来,放在更合适的地方或机器特定的地方。

出于某种原因,pulseaudio是关于安全性的。 即使我不确定为什么对于一个声音守护进程来说如此重要,我并不是很在意这一点。 但是他们的限制太狭隘了。

例如,我试着将/〜/ /脉冲到/ tmp,它会返回以下内容:

Failed to create secure directory: Too many levels of symbolic links 

而脉搏将退出。

然后,我碰到这个线程 ,它声明了可以设置为将脉冲指向其他目录的环境variables。 所以我试着设置脉冲发射器( /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' 

我甚至尝试设置权限和所有者的东西,我认为脉冲会很满意。 我从bug 662中发布的stacktrace中收集了我想要的内容(关于这个问题的更多信息也在这里)。

但是,这组命令导致脉冲抛出以下,然后退出。

 Failed to create secure directory: Permission denied 

既然开发者似乎一般都不愿意接受这个问题,那么我需要寻找一些办法来解决这个问题。 如果不是,我将去除脉冲,这对于这些机器的将来的兼容性来说是不理想的。

我们已经浪费了大量的工时来追踪并试图解决这个问题,现在是时候继续前进了。

如果任何人对变通方法有任何想法或有任何关于这个问题的更多信息,我会非常感激。

PulseAudio开发人员似乎并不喜欢很多事情,其中​​之一是这种解决方法:

使用PulseAudio作为系统守护进程 ,而不是按用户运行。

正如我所提到的,开发者并不特别推荐这个, 因为他们自己的原因 。 如果您这样做,请注意对系统的潜在安全影响。

有点晚,但也许有帮助。

绑定到其他文件夹(NFS挂载之外)是你的朋友。 我只是试了一下

mount -o bind /tmp/.johndoe_puls /home/johndoe/.puls

当然,这只能由root用户完成。 bindmount的安装点获取与安装目标相同的权限集。

问候,约恩

你的脚本有几个错误。 当你想将pulseaudio目录移出主目录时,你必须将下面的代码添加到~/.bash_profileconfiguration文件中:

 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 

谢谢,吉日